복잡도란?
시간 복잡도: 특정 크기의 입력에 대해 알고리즘의 수행 시간 분석
공간 복잡도: 특정 크기의 입력에 대해 알고리즘의 메모리 사용량 분석
시간 복잡도가 높다 -> 알고리즘 실행에 오랜 시간이 걸린다
공간 복잡도가 높다 -> 알고리즘 실행에 많은 메모리가 사용된다
빅오 표기법
가장 빠르게 증가하는 항만 고려하는 표기법
ex) 연산 횟수가 3N^3 + 5N^2 + 1,000,000 이면 시간 복잡도는 O(N^3)
알고리즘 설계 팁
연산 횟수가 5억을 넘어가는 경우:
- C언어: 1~3초 가량 시간 소요
- Python: 5~15초 가량 시간 소요
코딩테스트 문제에서 시간제한은 통상 1~5초 가량
수행 시간 측정 소스코드 예제
import time
start_time = time.time() # 측정 시작
# 프로그램 소스코드
end_time = time.time() # 측정 종료
print("time: ", end_time - start_time)
'CodingTest' 카테고리의 다른 글
SWEA - 패턴 마디의 길이(2007) (2) | 2023.10.23 |
---|---|
코딩테스트 준비 - 파이썬 문법 정리 (0) | 2023.10.22 |
SWEA - 스도쿠 검증(1974) (1) | 2023.10.21 |
SWEA - 어디에 단어가 들어갈 수 있을까(1979) (0) | 2023.10.21 |
SWEA - 지그재그 숫자(1986) (0) | 2023.10.19 |