문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7055 : 딕셔너리 역변환

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

7055 : 딕셔너리 역변환

시간 1.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

파이썬의 딕셔너리(Dictionary)는 키(Key)를 사용하여 값(Value)을 신속하게 조회할 수 있는 자료구조입니다.
하지만 반대로 값(Value)을 통해 키(Key)를 찾아야 하는 경우도 생깁니다.
주어진 딕셔너리 데이터를 바탕으로 역방향 검색(값 -> 키)을 수행하는 프로그램을 작성하십시오.
만약 동일한 값에 여러 개의 키가 대응된다면(값 충돌), 입력 순서상 먼저 등장한 키를 반환해야 합니다.

[제약 조건]
• 데이터 수 $N$: $1 \le N \le 500$
• 쿼리 수 $Q$: $1 \le Q \le 100$
• 키와 값은 알파벳 소문자 단어입니다.

입력 설명

첫째 줄에 딕셔너리에 등록할 데이터의 수 N과 조회할 쿼리의 수 Q가 공백으로 구분되어 주어집니다. (1 ≤ N ≤ 500, 1 ≤ Q ≤ 100)
둘째 줄부터 N개의 줄에 걸쳐 딕셔너리의 "키 값" 쌍이 공백으로 구분되어 주어집니다. 키와 값은 모두 알파벳 소문자로 구성된 단어입니다.
이후 Q개의 줄에 걸쳐 검색하고자 하는 값(Value)이 한 줄에 하나씩 주어집니다.

출력 설명

Q개의 줄에 걸쳐 각 쿼리에 매칭되는 원래 딕셔너리의 키(Key)를 출력합니다.
만약 매칭되는 키가 존재하지 않는 경우 "NONE"을 출력합니다.

입력 예시
COPY
복사되었습니다!

4 3
apple fruit
banana fruit
carrot vegetable
dog animal
fruit
vegetable
plant

출력 예시
COPY
복사되었습니다!

apple
carrot
NONE

도움

파이썬의 딕셔너리 컴프리헨션(Dictionary Comprehension)을 사용하거나 반복문을 돌면서 역변환 딕셔너리를 직접 생성할 수 있습니다.
다만 역변환 딕셔너리를 생성할 때 이미 존재하는 값(Value)에 대해서는 키(Key)를 덮어쓰지 않도록 조건문을 설정하여 "먼저 등장한 키"를 보존하십시오.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘