알고리즘의 성능을 나타내는 척도로, 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다.
특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석
특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석
가장 빠르게 증가하는 항만을 고려하는 표기법
인 알고리즘을 빅오 표기법으로 나타내면
순위 | 명칭 | |
---|---|---|
좋음(Better) | 상수 시간(Constant time) | |
로그 시간(Log time) | ||
선형 시간 | ||
... | 로그 선형 시간 | |
이차 시간 | ||
삼차 시간 | ||
지수 시간 | ||
나쁨(Worse) | 팩토리얼 |
일반적으로 CPU 기반 개인 컴퓨터나 채점용 컴퓨터에서 연산 횟수가 5억을 넘어가는 경우:
코딩테스트 문제에서 시간제한은 통상 1~5초 가량
문제에 명시되어 있지 않은 경우 대략 5초라고 생각
[알고리즘 설계 단계]
지문 읽기 및 컴퓨터적 사고
문제에서 가장먼저 시간제한(수행시간 요구사항) 확인 및 분석
시간제한이 1초인 문제
- N의 범위가 500인 경우: 최대 알고리즘 설계
- N의 범위가 2000인 경우: 최대 알고리즘 설계
- N의 범위가 100000인 경우: 최대 알고리즘 설계
- N의 범위가 10000000인 경우: 최대 알고리즘 설계
문제 해결을 위한 아이디어 찾기
소스코드 설계 및 코딩