https://www.acmicpc.net/problem/1620
- 풀이 1
# 백준 1620 나는야 포켓몬 마스터 이다솜
# n : 포켓몬의 개수
# m : 맞춰야 하는 문제의 개수
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
pname2index = {} # 1
for i in range(n):
name = input().strip()
pname2index[name] = str(i+1)
index2pname = {index : name for name, index in pname2index.items()} # 2
for _ in range(m):
q = input().strip()
if q in pname2index: # 3
print(pname2index[q])
else:
print(index2pname[q])
문제는
- 포켓몬에 번호를 붙여라
- 이름을 물어보면 번호를 말하고 번호를 물어보면 이름을 말해라
입니다.
# 1 : 그래서 저는 pname2index 라는 딕셔너리를 만들어서 {포켓몬 이름 : 번호} 형식으로 저장하였습니다. 이름을 번호(인덱스)로 바꿔주는 딕셔너리 입니다.
# 2 : 그리고 번호를 받아서 이름으로 바꿔주는 딕셔너리 index2pname도 만들었습니다. 그냥 pname2index를 key, value 자리만 바꿔주면 됩니다.
# 3 : 질문이 들어오면 질문이 번호인지 이름인지를 파악해줍니다. 딕셔너리에 in을 사용하면 key값 기준으로 판단 해줍니다. 해보니까 그렇더라구요.. ㅎㅎ 여튼 질문이 pname2index의 key에 있으면(이름이면) pname2index를 이용해 이름을 번호로, 아니면 index2pname을 이용해 번호를 이름으로 바꿔서 출력해줍니다.
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준 파이썬 1764 듣보잡 (0) | 2022.09.30 |
---|---|
[Python] 백준 파이썬 10816 숫자 카드 2 (0) | 2022.09.29 |
[Python] 백준 파이썬 14425 문자열 집합 (0) | 2022.09.27 |
[Python] 백준 파이썬 10815 숫자 카드 (1) | 2022.09.26 |
[Python] 백준 파이썬 1436 영화감독 숌 (1) | 2022.09.25 |