호기심 많은 분석가
[백준 1620] 나는야 포켓몬 마스터 이다솜 (Python) 본문
1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
이번 문제는 굉장한 스토리텔링이 있는 문제기에 접속하여 읽어보면 재밌을 듯하다.
import sys
n, m = map(int, sys.stdin.readline().split())
dogam = [sys.stdin.readline().rstrip() for _ in range(n)]
dogam_dic = {}
for i in range(len(dogam)) :
dogam_dic[dogam[i]] = i+1
for i in range(m) :
temp = sys.stdin.readline().rstrip()
print(dogam[int(temp)-1] if temp.isdigit() else dogam_dic[temp])
이번에도 시간을 줄이기 위해 여러 방법을 사용했다. 우선 dictionary를 이용하여 단어의 위치를 표현하였고, 주어진 단어가 리스트에 있는지 확인하기 위해 in 문법을 사용했더니 시간이 너무 오래 걸렸다. 반대로 숫자임을 isdigit()으로 우선적으로 파악하여 그 시간을 줄인 덕분에 이번 문제를 해결할 수 있었다.
dictionary에도 익숙해지고 시간을 줄이기 위한 방법을 이것저것 알아가는 중이다. :)
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[백준 2630] 색종이 만들기 (Python) (0) | 2021.06.11 |
---|---|
[백준 2606] 바이러스 (Python) (0) | 2021.06.11 |
[백준 1764] 듣보잡 (Python) (0) | 2021.06.09 |
[백준 11723] 집합 (Python) (2) | 2021.06.08 |
[백준 9012] 괄호 (Python) (0) | 2021.06.04 |