- 시간 복잡도: 그냥 빅-오, 즉 최악일 때의 연산 횟수만 기억하면 됨 -> 어떠한 케이스라도 통과 못하면 안 되기 때문
- 어떤 코드의 시간 복잡도 파악
- 상수는 무시한다. 즉 for문이 한 개 있으면 복잡도가 n이라 치자. for문이 3개 있어도 컴퓨터 입장에선 n이나 3n이나 도토리 키재기다. 그러니 무시한다.
- 가장 많이 중첩된 반복문 수행 횟수가 기준이 된다: 즉 for문이 1억개 있어도, 이중 for문 하나를 못 이긴다는 소리다. 즉 복잡도는 n의 제곱이지, n의 제곱 + 1억*n이 아니란 소리다.
- 연산 횟수: 시간 복잡도 n에 데이터 크기 대입하면 됨
- 시간복잡도로 1. 문제 제한 시간에 맞는 알고리즘 선택할 수 있고 2. 내가 짜는 로직에서 복잡도 효율이 안 좋아 불통하는 부분을 찾아낼 수 있다
- 빠른 거부터 나열: logn > n > nlogn > n^2 > 2^n > n! - log1000000를 대하는 법: 밑이 2이다. 코테에서는 > log1000000이 x라면, 2의 x제곱이 백만이다 > 2의 10제곱이 1024, 즉 약 1000이다 > 2의 20제곱은 약 백만이다 > 따라서 log1000000은 약 20이다
'CODING TEST > THEORY' 카테고리의 다른 글
[임시] 슬라이딩 윈도우 (0) | 2024.05.28 |
---|---|
[Do it 코테 자바편] 투 포인터 (0) | 2024.05.24 |
[Do it 코테 자바편] 구간 합 (0) | 2024.05.18 |
[Do it 코테 자바편] 배열과 리스트 (0) | 2024.05.17 |
[Do it 코테 자바편] 디버깅 (0) | 2024.05.16 |