본문 바로가기
백준 풀이

[백준/BOJ] - 10816번 python 풀이 - dict, dictionary 개념

by 반오십 코린이 2022. 11. 22.
728x90


Key Point

 

 예제에서 볼 수 있듯이 맨 처음 입력되는 기준 리스트의 원소가 겹치는 원소가 있을 수 있기 때문에 dict 자료 구조를 사용하였다. key, value를 통해 해당 숫자(key)가 몇개를 가지고 있는지(value)를 나타내어 쉽게 문제를 해결할 수 있기 때문이다.

 

알게 된 문법

 

dict 관련 문법.

기본 문법 정리 게시물에 추가.


import sys
N = int(sys.stdin.readline())
lists1 = list(map(str, sys.stdin.readline().split()))
M = int(sys.stdin.readline())
lists2 = list(map(str, sys.stdin.readline().split()))

temp_dict= {} #dict 선언
result = [0 for _ in range(M)] #출력값 저장할 list 선언
for i in lists1: #lists1 for문
    if i in temp_dict: #temp_dict에 lists1의 원소가 있다면
        temp_dict[i] +=1 #temp_dict[i] 즉, value에 +1
    else:
        temp_dict[i] = 1 #없다면(temp_dict에 key, value 쌍으로 저장)

for idx, val in enumerate(lists2):    
    if val in temp_dict: #temp_dict에 lists2의 원소가 있다면
        result[idx] = temp_dict[val] # result list에 temp_dict에 해당 key의 val 값 저장  
for i in result: #출력
    print(i, end=' ')
728x90