반응형
백준을 안 푼지 너무 오래 됐다
다시 깃헙에 잔디 심기 Start
대충 풀 바엔 그냥 풀지말고 그 날은 쉬자 파이팅
https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
# 20231230 다시 풀기
import sys
input = sys.stdin.readline
Arr1 = []
Arr2 = []
N, M = map(int, input().split())
for i in range(N):
Arr1.append(list(map(str, input().split())))
for j in range(M):
Arr2.append(input().strip())
for j in range(M):
for i in range(N):
if Arr2[j] == Arr1[i][0]:
print(Arr1[i][1])
역시나
2중 for문은 시간초과 오류가 난다 망할 파이썬 ,,,
어떻게 해야할까
-------
생각해보니까 꼭 Array로 하라는 법은 없다.
import sys
# 입력 받기
N, M = map(int, input().split())
Arr1 = {}
for _ in range(N):
a, b = input().split()
Arr1[a] = b
Arr2 = [input().strip() for _ in range(M)]
# 결과 출력
for word in Arr2:
if word in Arr1:
print(Arr1[word])
이런식으로 dictionary로 해주면 value를 쉽게 print 할 수 있기 때문
아 근데 여전히 채점 시간이 오래 걸린다
다른 사람들은 어떻게 했을까...?
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
add = {}
for _ in range(N):
site, ps = input().split()
add[site] = ps
for _ in range(M):
print(add[input().rstrip()])
애초에 문자열을 사이트와 비밀번호로 나눠서 받은 다음
add라는 dictionary에 site라는 키와 ps라는 value로 저장하는구나,,,
그 다음 add라는 딕셔너리에 찾고 싶은 key를 input 받아서 value 값을 출력해준다.
이러면 이중 for문을 절대 쓸 일이 없으니 시간초과도 안 난다.
또 하나 배워갑니다 Good
반응형
'Algorithm > BOJ' 카테고리의 다른 글
| 백준 (BOJ) - 1260 DFS와 BFS [Python] (0) | 2023.02.13 |
|---|---|
| 백준 (BOJ) - 1764 듣보잡 [Python] (0) | 2023.01.23 |
| 백준 (BOJ) - 1541 잃어버린 괄호 [Python] (0) | 2023.01.19 |
| 백준 (BOJ) - 2110 공유기 설치 [Python] (0) | 2023.01.05 |
| 백준 (BOJ) - 1931 회의실 배정 [Python] (1) | 2022.11.03 |