코딩테스트 준비를 위한 과정
업데이트:
카테고리: 코딩테스트
1. 기본적으로 알아야 할 것
- 최대한 for 문을 사용하지 않는 것이 시간적으로 이득이다.
- numpy를 이용하지 못할 때가 있을 수도 있다. 그때는 대비하여 파이썬의
기본 라이브러리들에 대해 빠삭하게 공부하자. 링크
- 자주쓰는 random, sort 등을 항상 생각하자.
- 5 2 처럼 입력을 받을 때 n,m = map(int,input().split()) 를 사용하자.
- 기본 함수 중 min, max를 잘 활용하고, 기본적인 문법은 다음과 같다.
min(a) # 리스트 a에서 가장 작은 수를 추출 min(a,b) # 실수 a,b 중 작은 놈을 추출 max(a) # 리스트 a에서 가장 작은수를 추출 max(a,b) # 실수 a,b 중 큰 놈을 추출
- 파이썬은 메모리 제한을 고려하려면 만약 int형 데이터의 list의 길이가 1000만이 되면 메모리는 40MB를 잡아먹는 것을 알자.
- 파이썬의 계산시간을 고려하려면 대충 1초에 2000만번의 연산을 수행한다고 생각하자. 특히 제한시간이 1초인데 데이터의 개수가 100만개 정도이면 시간 복잡도는 O(NlogN)이내의 알고리즘으로 문제를 풀어야한다. 따라서 시간제한과 데이터의 개수를 먼저 확인한 다음에 어느정도의 시간 복잡도의 알고리즘으로 문제를 풀지 예측하는 습관을 가져야한다.
- for문을 쓸때 for i in range(start,end,step) 에서 step을 정해주면 step단위로 for문이 돌아가고, step에 -1을 하면 역으로 작아진다.
- 입력데이터의 수가 많으면 sys라이브러리의 readline()을 사용하자.