본문 바로가기
알고리즘/백준

백준 실버4 1620. 나는야 포켓몬 마스터 이다솜 (python)

by 개발하는 호랑이 2024. 3. 2.

나는야 포켓몬 마스터 이다솜

 

풀이

처음에는 리스트를 인덱스와 이름을 같이 넣어서 확인할까 하다가 그냥 딕셔너리를 사용하기로 했다.

다음처럼 풀었다.

  1. 이름번호, 번호이름 2개의 딕셔너리 생성. 이때 번호는 str로 저장을 했다.
  2. 이름을 받으면서 딕셔너리에 각각 입력
  3. 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])