코딩테스트

백준 1620번 - 나는야 포켓몬 마스터 이다솜 PYTHON

choyou831 2024. 8. 3. 16:46

a,b = map(int, input().split())
my_list = []
answer = []
answer1 = []
for i in range(a+b):
    k = input()
    if i<a:
        my_list.append(k)
    else:
        answer.append(k)
for i in range(len(answer)):
    if answer[i].isdigit():
        answer[i] = int(answer[i])-1
        answer1.append(my_list[answer[i]])
    else:
        if answer[i] in my_list:
            index = my_list.index(answer[i])
            answer1.append(index+1)
for i in range(len(answer1)):
    print(answer1[i])

for문을 통해 문제를 푸니 시관초과가 나왔다.

import sys
input = sys.stdin.readline
n, m = map(int, input().split())
dict = {}
for i in range(1, n + 1):
    a = input().rstrip()
    dict[i] = a
    dict[a] = i
for i in range(m):
    quest = input().rstrip()
    if quest.isdigit():
        print(dict[int(quest)])
    else:
        print(dict[quest])

 

딕셔너리를 사용하여 문제를 풀면 런타임 에러는 해결된다

 

배운점:백준에는 시간복잡도를 신경써야하는 문제가 많은것 같다. 이제부터는 알고리즘이나,시간복잡도에 대해는 공부를 해야할 필요성을 느꼈다