7055 : 딕셔너리 역변환
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
파이썬의 딕셔너리(Dictionary)는 키(Key)를 사용하여 값(Value)을 신속하게 조회할 수 있는 자료구조입니다.
하지만 반대로 값(Value)을 통해 키(Key)를 찾아야 하는 경우도 생깁니다.
주어진 딕셔너리 데이터를 바탕으로 역방향 검색(값 -> 키)을 수행하는 프로그램을 작성하십시오.
만약 동일한 값에 여러 개의 키가 대응된다면(값 충돌), 입력 순서상 먼저 등장한 키를 반환해야 합니다.
[제약 조건]
• 데이터 수 $N$: $1 \le N \le 500$
• 쿼리 수 $Q$: $1 \le Q \le 100$
• 키와 값은 알파벳 소문자 단어입니다.
하지만 반대로 값(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)이 한 줄에 하나씩 주어집니다.
둘째 줄부터 N개의 줄에 걸쳐 딕셔너리의 "키 값" 쌍이 공백으로 구분되어 주어집니다. 키와 값은 모두 알파벳 소문자로 구성된 단어입니다.
이후 Q개의 줄에 걸쳐 검색하고자 하는 값(Value)이 한 줄에 하나씩 주어집니다.
출력 설명
Q개의 줄에 걸쳐 각 쿼리에 매칭되는 원래 딕셔너리의 키(Key)를 출력합니다.
만약 매칭되는 키가 존재하지 않는 경우 "NONE"을 출력합니다.
만약 매칭되는 키가 존재하지 않는 경우 "NONE"을 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
4 3
apple fruit
banana fruit
carrot vegetable
dog animal
fruit
vegetable
plant
출력 예시
COPY
복사되었습니다!
복사되었습니다!
apple
carrot
NONE
도움
파이썬의 딕셔너리 컴프리헨션(Dictionary Comprehension)을 사용하거나 반복문을 돌면서 역변환 딕셔너리를 직접 생성할 수 있습니다.
다만 역변환 딕셔너리를 생성할 때 이미 존재하는 값(Value)에 대해서는 키(Key)를 덮어쓰지 않도록 조건문을 설정하여 "먼저 등장한 키"를 보존하십시오.
다만 역변환 딕셔너리를 생성할 때 이미 존재하는 값(Value)에 대해서는 키(Key)를 덮어쓰지 않도록 조건문을 설정하여 "먼저 등장한 키"를 보존하십시오.