알고리즘/백준
백준 실버4 1620. 나는야 포켓몬 마스터 이다솜 (python)
개발하는 호랑이
2024. 3. 2. 17:47
나는야 포켓몬 마스터 이다솜
풀이
처음에는 리스트를 인덱스와 이름을 같이 넣어서 확인할까 하다가 그냥 딕셔너리를 사용하기로 했다.
다음처럼 풀었다.
- 이름번호, 번호이름 2개의 딕셔너리 생성. 이때 번호는 str로 저장을 했다.
- 이름을 받으면서 딕셔너리에 각각 입력
- isalpha() 함수를 이용해서 이름으로 입력받으면 이름번호에서 찾아내고, 번호로 입력받으면 번호이름에서 찾아내기
따라서 전체 코드는 아래와 같다.
# 포켓몬의 갯수 N, 맞춰야하는 문제 갯수 M
# 1<= N,M <= 100000
# 포켓몬의 이름은 모두 영어
# 포켓몬 이름의 최대 길이는 20, 최소길이는 2
import sys
N, M = map(int, sys.stdin.readline().split())
# 숫자를 입력하면 포켓몬이름이 뚝딱
pocketmon_number = {}
# 이름을 입력하면 포켓몬숫자가 뚝딱
pocketmon_name = {}
for i in range(1,N+1):
tmp = sys.stdin.readline().strip()
pocketmon_number[str(i)] = tmp
pocketmon_name[tmp] = str(i)
for j in range(M):
problem = sys.stdin.readline().strip()
if problem.isalpha():
print(pocketmon_name[problem])
else:
print(pocketmon_number[problem])