관리 메뉴

솜씨좋은장씨

[BaekJoon] 17219번 : 비밀번호 찾기 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 17219번 : 비밀번호 찾기 (Python)

솜씨좋은장씨 2022. 3. 5. 18:17
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 비밀번호 찾기 입니다.

 

17219번: 비밀번호 찾기

첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번

www.acmicpc.net

👨🏻‍💻 문제 풀이

입력받은 사이트 비밀번호들의 사전을 만들어두고 하나씩 꺼내서 출력하면 됩니다.

import sys

input = sys.stdin.readline

입력은 100,000번까지 받기때문에 input() 대신에 sys.stdin.readline() 을 활용합니다.

 

단!!!! sys.stdin.readline 의 경우에는 입력 받은 값의 맨 뒤에 "\n" 개행문자가 포함됩니다.

개행문자를 고려하지 않고 문제를 풀면! 위처럼 런타임 에러 (KeyError) 결과를 받습니다.

이를 해결하기 위해서는!

sys.stdin.readline().rstrip()

위처럼 rstrip()을 붙여서 개행문자를 제거합니다.

site_password_dict = {}
site_list = []

input_site, find_site = map(int, input().rstrip().split())

for _ in range(input_site):
    site, password = input().rstrip().split()
    site_password_dict[site] = password

먼저 입력 받은 값을 활용하여 사이트 주소를 키값으로 값을 비밀번호로 하는 Dictionary를 하나 만들어줍니다.

answer = []
for site in site_list:
    answer.append(site_password_dict[site])
        
answer = "\n".join(answer)

그런 다음 입력 받은 사이트명 마다 비밀번호를 찾아 리스트에 저장해두었다가 "\n" ( 개행문자 ) 로 join하여

정답을 만들어줍니다.

 

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

import sys

input = sys.stdin.readline


def find_password(site_password_dict, site_list):
    answer = []
    for site in site_list:
        answer.append(site_password_dict[site])
        
    return "\n".join(answer)

if __name__ == "__main__":
    site_password_dict = {}
    site_list = []
    
    input_site, find_site = map(int, input().rstrip().split())
    
    for _ in range(input_site):
        site, password = input().rstrip().split()
        site_password_dict[site] = password
        
    
    for _ in range(find_site):
        site_list.append(input().rstrip())
        
    print(find_password(site_password_dict, site_list))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments