문제 설명
파이썬 리스트에서 자주 사용되는 여러 메소드명 중 하나가 입력값으로 주어졌을 때, 해당 메소드의 시간복잡도를 빅오(Big-O) 표기법으로 반환하는 solution 함수를 작성하시오.
입력값으로 메소드명은 "append", "insert", "remove", "sort", "pop", "index", "count", "extend", "reverse", "copy", "clear"중 하나이며, 해당 메소드의 시간복잡도를 "O(1)", "O(logN)", "O(N)", "O(K)", "O(NlogN)" 중에서만 반환하세요.
각 표기에서 N은 리스트의 길이, K는 추가되는 요소의 개수(extend 메소드의 경우)를 의미합니다.
개념 설명
파이썬 리스트의 각 메소드별 시간복잡도는 다음과 같습니다:
append: O(1) — 리스트 끝에 항목 추가(상수 시간)insert: O(N) — 임의 위치에 항목 삽입(전체 이동 필요)remove: O(N) — 첫 번째 해당 항목 삭제(전체 탐색 및 이동 필요)sort: O(NlogN) — 리스트 정렬pop: O(1) — 리스트 끝에서 항목 제거(상수 시간, 단 인덱스 미지정 시)index: O(N) — 특정 값의 인덱스 탐색(전체 탐색 필요)count: O(N) — 특정 값 개수 세기(전체 탐색 필요)extend: O(K) — 여러 항목 확장(추가되는 항목의 수 K에 비례)reverse: O(N) — 리스트 뒤집기(전체 이동)copy: O(N) — 얕은 복사(전체 복사)clear: O(N) — 모든 항목 삭제
입력으로 제공된 메소드명은 항상 소문자로만 이루어져 있습니다.
제한 사항
method는 반드시 아래 메소드 목록 중 하나로 주어집니다.- 입력되는 메소드 목록: append, insert, remove, sort, pop, index, count, extend, reverse, copy, clear
- 입력 메소드명은 소문자로만 이루어져 있습니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | method | return |
|---|---|---|
| 1 | "append" | "O(1)" |
| 2 | "sort" | "O(NlogN)" |
| 3 | "extend" | "O(K)" |
1번 테스트케이스 설명
- "append"는 리스트 끝에 항목을 추가하므로 시간복잡도는 O(1)입니다.
2번 테스트케이스 설명
- "sort"는 리스트 전체를 정렬하는 연산으로 시간복잡도는 O(NlogN)입니다.
3번 테스트케이스 설명
- "extend"는 추가되는 항목의 개수 K에 따라 복잡도가 결정되므로 O(K)입니다.