반응형
[문제 출처]
https://www.acmicpc.net/problem/1620
[문제 풀이]
딕셔너리를 이용하면 쉽게 해결할 수 있는 문제이다.
쉽게 구분하기 위해서 포켓몬 번호를 키값으로 하는 딕셔너리와
포켓몬 이름을 키값으로 하는 딕셔너리로 구분하여 코드를 작성하였는데 하나의 딕셔너리에 함께 저장해도 문제없다.
m개의 문제가 입력될 때 입력값이 번호인지 이름인지 isdigit() 함수로 판별하여 경우에 맞게 출력한다.
isdigit() 함수는 문자열이 숫자 형태인지 아닌지 구분해주기에 str타입으로 입력받아도 구분이 가능하다.
입력을 받을 때 rstrip() 없이 제출을 했을 때는 KeyError가 나왔는데
다른 부분 수정없이 rstrip()만 추가했는데 정답이 나와서 신기했다.
문제에서 입력을 줄 때 값 이외의 공백이 포함되는 건지 아님 다른 이유가 있는 건지 궁금하다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
book_num = {}
book_name = {}
for i in range(1,n+1):
name = input().rstrip()
book_num[i] = name
book_name[name] = i
for j in range(m):
data = input().rstrip()
if data.isdigit():
print(book_num[int(data)])
else:
print(book_name[data])
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1764 듣보잡 (2) | 2022.09.21 |
---|---|
[python/파이썬] 백준 10816 숫자 카드 2 (0) | 2022.09.20 |
[python/파이썬] 백준 10815 숫자 카드 (0) | 2022.09.16 |
[python/파이썬] 백준 1065 한수 (0) | 2022.09.15 |
[python/파이썬] 백준 25501 재귀의 귀재 (2) | 2022.09.14 |