학습
시험

파이썬 딕셔너리 메소드와 시간복잡도

난이도
STARTER

문제 설명

파이썬 딕셔너리에서 자주 사용되는 여러 메소드명 중 하나가 입력값으로 주어졌을 때, 해당 메소드의 시간복잡도를 빅오(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)입니다.