코딩테스트/Python
[Baekjoon] 17219. 비밀번호 찾기
swwho
2022. 10. 30. 10:09
728x90
반응형
🔗 Problem Link
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
❔Thinking
- "사이트주소 비밀번호"가 적힌 메모를 참고하여, 사이트 주소에 맞는 비밀번호를 출력한다.
- 입력이 많기 때문에, input이 아닌 다른 입력 방법을 활용한다.
💻Solution
import sys
N, M = map(int, sys.stdin.readline().split())
password_dict = {}
a = sys.stdin.read().splitlines()
sites = a[-M:]
password_dict = dict(p.split() for p in a[:-M])
for s in sites:
print(password_dict[s])
🗝️keypoint
- sys.stdin.read().splitlines()는 전체 입력을 라인별로 나누어 리스트로 반환한다.
- dict()에 for 문을 활용하여 한줄로 정의할 수 있다
- python dict의 key를 통한 value를 찾는 시간복잡도는 $O(1)$ 이다.