[Python]BaekJoon.AC

[Python]백준 BaekJoon.AC 1620 : 나는야 포켓몬 마스터 이다솜(dict, isdigit())

스뇨잉 2022. 1. 30. 17:35
728x90
728x90

.

.

.

이하생략

 

이번 문제는 직접 들어가 확인하도록 하자...

https://www.acmicpc.net/problem/1620

 

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

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

www.acmicpc.net

 

 

 

포켓몬 도감에 대한 문제이니 딕셔너리를 사용하기로 했다!(?)

도감, 사전, 비슷한거 아니겠어?

 

지금 확인해보니 해시를 사용한 집합과 맵...을 참고하라고 적혀있다..ㅎ

 

 

시간과 메모리 모두 무난하게 통과됐으니 그냥 넘어가기로 했다. 다솜이의 결정이다.

 

 

 

딕셔너리에 저장을 해주는데, 두 딕셔너리에 저장을 해줬다.

 

하나는 key가 도감번호이고,

다른 하나는 key가 포켓몬 이름이다.

 

 

나중에 문제를 맞출 때, 하나하나 value를 비교해가며 찾지 않게 하기 위함이다.

 

 

 

그리고 문제를 string으로 받았기 때문에, isdigit 함수를 이용해 숫자인지 판별해준다.

isalpha 함수를 사용해 문자인지 판별해줘도 된다.

 

그리고 get을 해주면 된다.

 

 

 

import sys

N, M = map(int, input().split())
dicN = {}
dicS = {}

for n in range(N):
    mon = sys.stdin.readline().strip()
    dicN[n+1] = mon
    dicS[mon] = n+1

for m in range(M):
    test = sys.stdin.readline().strip()
    if test.isdigit(): #숫자인지 판별
        print(dicN.get(int(test)))
    else:
        print(dicS.get(test))

 

 

728x90
728x90