문제 설명
어떤 알고리즘에 대해 입력 데이터의 크기가 N일 때, 알고리즘 연산량이 T(N)과 같다고 가정합니다.
(단, a, b, c, d, e는 0 이상의 정수)
입력으로 각 항의 계수 a, b, c, d, e가 주어졌을 때, N이 충분히 클 때 T(N)의 시간복잡도를 나타내는 빅오 표기법을 문자열로 반환하는 solution 함수를 구현하시오.
개념 설명
시간복잡도 함수 T(N)에서 각 항의 의미는 다음과 같습니다:
a(N^2): 2차 항으로, N이 커질수록 가장 빠르게 증가하는 항bNlogN: N과 logN의 곱 항으로, 2차 항 다음으로 빠르게 증가cN: 1차 항으로, 선형적으로 증가dlogN: 로그 항으로, 매우 천천히 증가e: 상수항으로, N의 크기와 관계없이 일정
N이 충분히 클 때, 가장 큰 차수의 항이 전체 시간복잡도를 결정합니다. 따라서 다음과 같은 우선순위로 빅오 표기법을 결정합니다:
O(N^2): a > 0일 때 (2차 항이 존재)O(NlogN): a = 0, b > 0일 때 (NlogN 항이 존재)O(N): a = 0, b = 0, c > 0일 때 (1차 항이 존재)O(logN): a = 0, b = 0, c = 0, d > 0일 때 (로그 항이 존재)O(1): a = 0, b = 0, c = 0, d = 0, e > 0일 때 (상수항만 존재)
제한 사항
- a, b, c, d, e는 0 이상의 정수입니다.
- 입력값 중 적어도 하나는 0이 아닙니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | a | b | c | d | e | return |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 0 | 1 | "O(N^2)" |
| 2 | 0 | 2 | 2 | 0 | 2 | "O(NlogN)" |
| 3 | 0 | 0 | 0 | 3 | 3 | "O(logN)" |
1번 테스트케이스 설명
- a = 1이므로 2차 항이 존재합니다. 따라서 "O(N^2)"를 반환합니다.
2번 테스트케이스 설명
- a = 0, b = 2이므로 NlogN 항이 존재합니다. 따라서 "O(NlogN)"를 반환합니다.
3번 테스트케이스 설명
- a = 0, b = 0, c = 0, d = 3이므로 로그 항이 존재합니다. 따라서 "O(logN)"를 반환합니다.