알고리즘 스터디 - 백준 1620번 : 나는야 포켓몬 마스터 이다솜
문제 해석
다솜이가 가지고 있는 포켓몬 도감에서 포켓몬의 이름을 보면 포켓몬의 번호를 말하거나, 포켓몬의 번호를 보면 포켓몬의 이름을 말하는 연습을 하고 통과하면 새로운 도감을 받는다.
입력
- 포켓몬의 개수 N, 내가 맞춰야 하는 개수 M
- N개의 줄에 1부터 N까지 해당되는 포켓몬이 생성되는데 대소문자가 섞여있다. 이름 길이는 최대 20, 최소 2이다.
- M개의 줄에 문제 입력이 들어오면 번호를 얘기하고 숫자가 오면 해당하는 문자를 출력한다.
알고리즘 코드
처음 작성했던 코드
- 이 경우 시간초과가 발생했다. Value를 통해서 Key값을 호출하는 것이 애매해서 다른 방식을 사용해보자.
from collections import defaultdict
N, M = map(int, input().split())
pocketmon = defaultdict(int)
for i in range(1, N+1):
monster = input()
pocketmon[monster] = i
for _ in range(M):
question = input()
if pocketmon[question]:
print(pocketmon[question])
else:
print(list(pocketmon.keys())[list(pocketmon.values()).index(int(question))])
PyPy3만 통과한 코드
N, M = map(int, input().split())
pocket = []
pocketmon = {}
for i in range(1, N+1):
monster = input()
pocket.append(monster)
pocketmon[monster] = i
for _ in range(M):
question = input()
if question.isalpha():
print(pocketmon[question])
else:
print(pocket[int(question) - 1])
Author And Source
이 문제에 관하여(알고리즘 스터디 - 백준 1620번 : 나는야 포켓몬 마스터 이다솜), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@guri_coding/알고리즘-스터디-백준-1620번-나는야-포켓몬-마스터-이다솜저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)