728x90
시간 복잡도가 비교적 적은 딕셔너리를 사용하면 좋은 문제이다.
idx를 통해 포켓몬을 조회할 수 있고
포켓몬을 통해 idx를 조회할 수 있게
딕셔너리에 값을 반대로도 저장한다.
입력값을 확인할 때 숫자로 이루어진 str인지 아닌지를 판별하기 위해
temp.isdigit()
을 활용하였다. 처음 본 문법.
이전 한화 코딩테스트 때 해당 문법을 알았다면 금방 풀었을 문제가 있었다.
문자열 처리 문제에서 은근 유용하게 쓰일듯
여튼 숫자 str 여부 판별해서 dic에서 값 찾아서 출력하면 끝
통과 case
import sys
input = sys.stdin.readline
n,m = map(int,input().split())#총 포켓몬 수, 문제 수
dic = {}
for i in range(1,n+1):
a = input().rstrip()
dic[i] = a
dic[a] = i
for i in range(m):
p = input().rstrip()
if p.isdigit():
print(dic[int(p)])
else:
print(dic[p])
시간초과 case
아마 value로 key를 뽑아오는 과정에서 시간을 많이 잡아먹는듯 + 형 변환도 비교적 많다.
import sys
input = sys.stdin.readline
n,m = map(int,input().split())#총 포켓몬 수, 문제 수
dic = {0:0}
for i in range(1,n+1):
dic[str(input().rstrip())] = i
for _ in range(m):
pb = str(input().rstrip())
s = pb[0]
if pb.isdigit():
print(*[k for k, v in dic.items() if v == int(pb)])
else:
print(dic[pb])
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 1065번 python 풀이 - 숫자의 각 자릿수를 list에 int형으로 변환 하는법 (0) | 2023.05.10 |
---|---|
[백준/BOJ] - 11659번 python 풀이 - dp (0) | 2023.04.17 |
[백준/BOJ] - 9375번 python 풀이 - dict (0) | 2023.04.12 |
[백준/BOJ] - 9205번 python 풀이 - bfs (0) | 2023.04.05 |
[백준/BOJ] - 1240번 python 풀이 - bfs (0) | 2023.04.04 |