코딩테스트

백준 1302 + 파이썬 딕셔너리 복습

eunGI 2022. 9. 27. 14:40

딕셔너리

- key와 value를 한 쌍으로 갖는 자료형

- value로는 리스트가 들어갈 수도 있음

- 딕셔너리에 a[2] = 'b'와 같이 입력하면 딕셔너리 a에 Key와 Value가 각각 2와 'b'인 2 : 'b'라는 딕셔너리 쌍이 추가됨

- del a[key]를 입력하면 해당 key 값을 가진 key, value 쌍이 딕셔너리에서 삭제됨

- key는 중복되면 안됨, 동일한 key가 2개 이상 존재하면 1개빼고는 다 무시됨

- key에는 리스트를 쓸 수 없음

- a.keys()와 같이 keys() 함수를 이용해서 딕셔너리에 있는 키 값들만 다 뽑아올 수 있음

- a.vlalue()와 같이 value() 함수를 이용해서 딕셔너리에 있는 value 값들만 다 뽑아올 수 있음

- a.items()와 같이 items() 함수를 이용해서 key와 value 쌍을 튜프로 묶은 값을 객체로 반환받아올 수 있음

- a.clear()와 같이 clear() 함수를 이용해서 딕셔너리 속에 모든 데이터를 지울 수 있음

- a.get('키")와 같이 key값을 이용해서 value를 가져올 수 있음 (딕셔너리에 찾으려는 key 값이 없을 경우 미리 정해둔 디폴트 값을 가져오게 할 수 있음 -> a.get("키 값", "디폴트 값")

- "키 값" in 딕셔너리_이름 과 같이 특정 키가 딕셔너리 안에 있는지 조사할 수 있음

 

# 백준 1302
import sys

count = int(input())
board = dict()

for _ in range(count):
    book = sys.stdin.readline().strip()
    if book in board:
        board[book] += 1
    else:
        board[book] = 1

max_value = max(board.values()) # 딕셔너리 value 중 가장 큰 값 찾음
answer_list = []

for i in board.keys():
    if max_value == board[i]: # 가장 큰 value를 가진 key 값을 찾아서 
        answer_list.append(i) # 정답을 위한 리스트에 저장

answer_list.sort() # 많이 팔린 책이 여러권일 경우 사전순으로 앞서는 책 출력해야돼서 정렬

print(answer_list[0])

 

'코딩테스트' 카테고리의 다른 글

[파이썬] collections 모듈 - Counter 클래스  (0) 2023.03.31
백준 10825  (0) 2022.09.27
백준 1764  (0) 2022.09.27
백준 1427  (0) 2022.09.22
백준 1181  (0) 2022.09.22