반응형

-풀이

import sys
input = sys.stdin.readline
M, N = map(int, input().split())
dict = {}
result = []
for i in range(M):
  b = input().rstrip()
  dict[b] = i+1
  result.append(b)
for _ in range(N):
  a = input().rstrip()
  if a.isdigit():
    print(result[int(a)-1])
  else:
    print(dict[a])

-풀이설명

처음엔 시간초과가 떴다. 왜냐하면 반복문(N) + 위치를 찾기위해 인덱스 함수를 사용(N) = N^2 했기 때문이다. 한참 생각을 하다가 구글링을 해보니 딕셔너리를 사용하는 방법이 있었다. 

그래서 바로 딕셔너리로 구현을 했는데 시간초과가 떴다. 혹시나해서 sys.stdin.readline을 써주니 통과가 되었다.

문법오류를 많이 일으켰는데 그 이유는 sys.stdin.readline을 해주었을 때 자동으로 개행이 되기 때문에 정수형 입력을 받을때는 상관이 없지만 문자열로 입력받을 때는 꼭 rstrip()을 넣어줘야 한다는 것을 명심하자!

여러 유형 문제를 풀다보니 오랜만에 이러한 유형이 나올 때는 또 헷갈려서 배웠던 내용들을 까먹는 것 같다.

무한 복습 할 것

+ Recent posts