https://www.acmicpc.net/problem/1620
단순히 리스트에 값을 저장한 후
질문이 숫자라면 -> 포켓몬 이름
숫자가 아니라면 -> 포켓몬 도감 번호(인덱스)를 출력하는 형식으로 생각했고 index 함수를 사용했었고 시간 초과가 나왔다. 그래서 도감 번호와 포켓몬 이름을 같이 저장하기 위해 딕셔너리를 사용해야했다.
m,n = map(int, input().split())
pocketmons = []
pocketmons_idx = dict()
for i in range(m):
name = input()
pocketmons.append(name)
pocketmons_idx[name] = i + 1
for i in range(n):
question = input()
if question.isdigit():
print(pocketmons[int(question) - 1])
else:
print(pocketmons_idx[question])
📚 딕셔너리는 키와 값이 쌍으로 존재하는 데이터를 저장할때 사용하며 각 키를 각각 조회가 가능하다.(자바의 맵과 유사) 따라서 다른 자료형을 저장해야할 때 사용하고 빠르게 조회해야할 때 사용한다.
추가적으로 enumerate에 대해서도 찾아보았는데 인덱스와 값을 동시에 반복을 돌리고 싶을때 사용한다고 한다.