반응형
-풀이
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()을 넣어줘야 한다는 것을 명심하자!
여러 유형 문제를 풀다보니 오랜만에 이러한 유형이 나올 때는 또 헷갈려서 배웠던 내용들을 까먹는 것 같다.
무한 복습 할 것
'알고리즘' 카테고리의 다른 글
[정렬] 백준 2693파이썬 (N번째 큰수) 실버5 (0) | 2022.04.26 |
---|---|
[replace] 백준 1343 파이썬 (폴리오미노) 실버5 (0) | 2022.04.25 |
[정렬] 백준 1227 파이썬 (소트인사이드) 실버5 (0) | 2022.04.23 |
[정렬] 백준 10867파이썬 (중복 빼고 정렬하기) 실버5 (0) | 2022.04.21 |
[브루트포스] 백준 1059 파이썬 (좋은 구간) 실버5 (0) | 2022.04.20 |