알고리즘

BOJ 1620번

Unan 2023. 1. 17. 11:54
반응형
  • N : 포켓몬 수 (1< N < 100000)
  • M : 문제 수 (1< M < 100000)
import sys

N, M = map(int, sys.stdin.readline().rstrip().split())

dogam_name = {}
dogam_number = {}

for i in range(N):
    poketmon = sys.stdin.readline().rstrip()

    dogam_number[i+1] = poketmon
    dogam_name[poketmon] = i+1

ans = []

for j in range(M):
    prob = sys.stdin.readline().rstrip()

    if prob.isnumeric():
        ans.append(dogam_number[int(prob)])
    else:
        ans.append(dogam_name[prob])

for a in ans:
    print(a)

 

 

dictionary의 key, value를 바꾸는 방법을 생각했으나, 그럴 경우 O(N^2)이므로, 시간 초과가 된다

reversed_dict = dict(map(reversed, dict.items()))

 

<참고>

다음과 같은 방법으로도, key를 출력할 수 있다.

for key, value in dict.items():
    if case:
        print(key)
반응형

'알고리즘' 카테고리의 다른 글

BOJ 1427번  (0) 2023.01.25
BOJ 1110번  (0) 2023.01.23
BOJ 11047번, 1463번. DP  (0) 2023.01.19
BOJ 9095번  (0) 2023.01.18
BOJ 1764번  (0) 2023.01.16