🔗 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

  1. sys.stdin.read().splitlines()는 전체 입력을 라인별로 나누어 리스트로 반환한다.
  2. dict()에 for 문을 활용하여 한줄로 정의할 수 있다
  3. python dict의 key를 통한 value를 찾는 시간복잡도는 $O(1)$ 이다.

+ Recent posts