문제 설명
파이썬 딕셔너리에서 자주 사용되는 여러 메소드명 중 하나가 입력값으로 주어졌을 때, 해당 메소드의 시간복잡도를 빅오(Big-O) 표기법으로 반환하는 solution 함수를 작성하시오.
입력값으로 메소드명은 "get", "setdefault", "update", "pop", "keys", "values", "items", "clear", "copy", "popitem", "fromkeys" 중 하나이며, 해당 메소드의 시간복잡도를 "O(1)", "O(logN)", "O(N)", "O(NlogN)" 중에서만 반환하세요.
여기서 N은 딕셔너리의 원소 수를 의미합니다.
개념 설명
파이썬 딕셔너리의 각 메소드별 시간복잡도는 다음과 같습니다:
get: O(1) — 특정 키의 값을 가져오는 메소드setdefault: O(1) — 키가 없으면 기본값을 설정하고 반환하는 메소드update: O(N) — 다른 딕셔너리나 key-value 쌍들을 병합하는 메소드pop: O(1) — 특정 키의 값을 삭제하고 반환하는 메소드keys: O(1) — 모든 키를 반환하는 메소드values: O(1) — 모든 값을 반환하는 메소드items: O(1) — 모든 키-값 쌍을 반환하는 메소드clear: O(1) — 모든 항목을 삭제하는 메소드copy: O(N) — 얕은 복사를 수행하는 메소드popitem: O(1) — 임의의 키-값 쌍을 삭제하고 반환하는 메소드fromkeys: O(N) — 주어진 키들로 새 딕셔너리를 생성하는 메소드
입력으로 제공된 메소드명은 항상 소문자로만 이루어져 있습니다.
제한 사항
method는 반드시 아래 메소드 목록 중 하나로 주어집니다.- 입력되는 메소드 목록: get, setdefault, update, pop, keys, values, items, clear, copy, popitem, fromkeys
- 입력 메소드명은 소문자로만 이루어져 있습니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | method | return |
|---|---|---|
| 1 | "get" | "O(1)" |
| 2 | "popitem" | "O(1)" |
| 3 | "update" | "O(N)" |
1번 테스트케이스 설명
- "get"은 딕셔너리에서 특정 키의 값을 가져오는 메소드로, 평균적으로 O(1)의 시간복잡도를 가집니다.
2번 테스트케이스 설명
- "popitem"은 임의의 아이템(키-값 쌍)을 삭제하고 반환하는 메소드로, 평균적으로 O(1)의 시간복잡도를 가집니다.
3번 테스트케이스 설명
- "update"는 다른 딕셔너리 또는 key-value 쌍들을 현재 딕셔너리에 병합할 때 사용하는 메소드로, 아이템 수(N)에 비례하므로 평균적으로 O(N)입니다.