Zero to Hero
데이터베이스를 지탱하는 기술 01
Review 2020. 12. 27. 12:33

데이터베이스를 사용해야 하는 이유 1. 대량의 데이터 중에서 필요한 것을 빨리 반환할 수 있다. 2. 대량의 데이터를 메모리 내에서만으로는 취급할 수 없다. 3. 장애가 발생했을 때 빠른 복구가 어렵다. 4. 병렬성 제어가 어렵다. 5. 데이터 무결성을 보장하는 것이 어렵다. 인덱스(Index) 1. 전체 검색(Full Scan)은 대량의 데이터에 적합하지 않다. 2. 원하는 위치까지 순식간에 도달하는 방법 생각하기 방법 1 사용자 정보를 "고정 길이"로 관리하기 고정 길이 파일로 관리하면 ID에 대해서 파일 위치가 기계적으로 단순히 정해지기 때문에 바로 목표로 하는 데이터에 다다르게 된다. 그러나 불필요하게 소비되는 공간이 너무 많이 실용적이지 않다. 구체적인 문제점 1. 고정 길이 파일이 모든 사용자..

Python 코딩 테스트 기본 템플릿(백준, 프로그래머스, SWEA)
Algorithm 2020. 12. 20. 10:31

백준 import sys # 재귀 depth를 늘려줌 sys.setrecursionlimit(10 ** 9) # 파일 입출력 r = sys.stdin.readline # int 하나 입력 받기 length = int(r()) # list 입력 받기 list1 = list(map(int, r().split())) # 문자열 입력받기 string1 = r().rstrip() 백준은 입력부터 출력까지 전부 다 작성해줘야 한다. 하지만 표준 라이브러리에 해당하는 모든 것을 사용할 수 있다. 표준 입출력보단 속도가 훨씬 빠른 파일 입출력으로, 재귀 depth도 늘려준 뒤 사용한다. 프로그래머스 # 여기에 사용할 라이브러리를 선언해줌 def solution(answers): answer = [] return ans..

article thumbnail
코딩테스트에 Python을 사용할 때 고려 및 주의해야할 점
Algorithm 2020. 12. 20. 10:05

요즘 코딩 테스트 광탈을 Python으로 면하자는 콘셉트의 자료(게시글, 강의, 책)가 많이 보인다. 지난 1년간 코딩 테스트에 Python을 사용하면서 느낀 점과 주의할 점을 공유해보려 한다. 1. 속도 Python 관련해서 가장 많이 언급되는 부분 중 하나가 속도다. 결론부터 말하면 평균적으로 속도가 느리고, 그 속도를 가늠하기 쉽지 않다. 여기서 말하는 가늠하기 쉽지 않다는 것은 개략적인 시간 복잡도를 판단하는 것이 아닌 실제로 채점 사이트에 나오는 속도(ms)를 말한다. Python은 컴파일러(Compiler)가 아닌 인터프리터(Interpreter) 언어이다. 뿐만 아니라 언어 구조상 코딩 테스트에 주로 사용되는 C++/Java에 비해 속도가 느리다. (언어 구조 및 원리에 대해선 추후 포스팅 ..

내가 주로 사용하는 Python 문법(20.12.20 기준)
Algorithm 2020. 12. 20. 09:23

변수 관련 # 한 줄에 변수를 2개 이상 선언할 수 있다 a, b = 10, 20 # 자료구조도 마찬가지 c, d = [], [] # *args 문법 board = [1, 2, 3, 4, 5] a, *b, c = board # a=1, b=[2,3,4], c=5 # swap a, b = 5, 10 a, b = b, a # a=10, b=5 list 조작 1 # map board = [1, 2, 3, 4, 5] new_board = list(map(lambda x: x * 2, board)) # new_board = [2,4,6,8,10] # filter board = [1, 2, 3, 4, 5] new_board = list(filter(lambda x: x > 2, board)) # new_board ..