📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 1620 나는야 포켓몬 마스터 이다솜 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/1620

 

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

첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면

www.acmicpc.net


문제 해석 : 포켓몬의 이름이 순서대로 입력되고 그 순서가 포켓몬의 번호가 된다. 그 다음 입력으로 들어오는 수 또는 이름을 토대로 매칭되는 답을 하면 되는 문제이다.

 

문제 풀이 :  단순하게 배열로 문제를 탐색하여 풀게 되면 시간 초과가 난다. 따라서 딕셔너리를 이용한 풀이가 가능하다.

-> 두 개의 딕셔너리를 생성해 하나는 key를 이름으로 또 다른 하나는 key를 수로 하면 간단하게 해결 할 수 있다.

 


풀이 코드

N, M = map(int, input().split())
name = {}
number = {}
start = 1

for _ in range(N):
    n = input().strip()
    name[n] = start
    number[start] = n
    start += 1

for _ in range(M):
    problem = input().strip()
    if problem.isnumeric():
        print(number[int(problem)])
    else:
        print(name[problem])

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.