코딩테스트/이것이 취업을 위한 코딩테스트다
[이것이 취업을 위한 코딩테스트다 with Python] chapter 01 코딩 테스트 개요
brux
2023. 4. 10. 21:29
복잡도
- 시간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지 의미
- 공간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지 의미
시간 복잡도
- 빅오(Big-O) 표기법 사용
- 빅오 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법, 함수의 상한만을 나타낸다.
- 일반적인 코딩 테스트에서 O(N^3) 을 넘어가면 문제 풀이에서 사용하기 어렵다.
- 개인 컴퓨터나 채점용 컴퓨터에서는 연산 횟수가 10억을 넘어가면 C언어를 기준으로 통상 1초 이상의 시간 소요된다.
- N의 크기가 5,000이 넘는다면 10초 이상의 시간이 걸릴 수 있다.
- 코딩 테스트 문제에서 시간 제한은 1~5초 가량이므로 보통 연산 횟수가 10억을 넘어가도록 작성하면 오답 판정을 받을 수 있다.
- 시간 복잡도에서 '연산'은 사칙연산, 비교연산 등과 같은 기본 연산을 의미하고 더하기, 빼기 같은 사칙 연산 뿐만 아니라 비교연산 또한 한 번의 연산으로 취급
공간 복잡도
- 빅오 표기법을 이용한다.
- 메모리 사용량에도 절대적인 제한이 있다.
- 일반적으로 메모리 사용량 기준은 MB단위로 제시된다.
- 코딩 테스트에서 보통 메모리 사용량을 128~512MB 정도로 제한한다. 일반적인 경우 데이터의 개수가 1,000만 단위가 넘어가지 않도록 알고리즘 설계를 해야 한다.
빅오 표기법 | 명칭 |
O(1) | 상수 시간 |
O(logN) | 로그 시간 |
O(N) | 선형 시간 |
O(NlogN) | 로그 선형 시간 |
O(N^2) | 이차 시간 |
O(N^3) | 삼차 시간 |
O(2^N) | 지수 시간 |
위 내용은 <이것이 취업을 위한 코딩테스트다 with 파이썬>을 기반으로 공부하여 작성 내용입니다.
http://www.yes24.com/Product/Goods/91433923
이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24
나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생
www.yes24.com