728x90
https://www.acmicpc.net/problem/1620
import sys
n, m = map(int, sys.stdin.readline().split())
dict_name, dict_number = {}, {} #1
for number in range(1, n+1):
name = sys.stdin.readline().rstrip()
dict_name[name] = number
dict_number[number] = name
for _ in range(m):
pokemon = sys.stdin.readline().rstrip()
if pokemon.isdigit(): #2
print(dict_number[int(pokemon)])
elif pokemon.isalpha():
print(dict_name[pokemon])
처음에 한 개의 딕셔너리를 이용해서 어떻게 숫자를 받을 때 key를 출력할 수 있을까를 고민했었다. 하지만 2개를 이용하면 그런 고민을 할 필요가 없다.
#1 : 포켓몬의 이름을 key로 하고 번호를 value로 하는 딕셔너리
#2 : 포켓몬의 번호를 key로 하고 이름을 value로 하는 딕셔너리. 출력할 때 입력받은 value는 str이기에 int() 함수 사용해서 정수형으로 바꿔서 출력해준다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 1269 파이썬(python) : 대칭 차집합 (0) | 2022.06.18 |
---|---|
[백준] 1764 파이썬(python) : 듣보잡 - (★) (0) | 2022.06.18 |
[백준] 14425 파이썬(python) : 문자열 집합 (0) | 2022.06.17 |
[백준] 9375 파이썬(python) : 패션왕 신해빈 - (★) (0) | 2022.06.17 |
[백준] 1874 파이썬(python) : 스택 수열 (0) | 2022.06.17 |