https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
문제 해석
이 문제는 먼저 N개만큼 사이트주소와 비밀번호를 공백으로 나누어진 한 줄로 입력받은 후
M개 만큼 찾고싶은 비밀번호의 사이트의 주소를 입력 받는다.
출력으로는 찾고싶은 M개의 비밀번호가 차례로 출력된다.
코드
n, m = map(int,input().split())
dic = {}
for i in range(n):
a, b = input().split()
dic[a] = b
for i in range(m):
t = input()
print(dic[t])
문제 풀이
이 문제는 사이트주소와 비밀번호가 서로 1대1 매칭되기 때문에 파이썬의 집합 자료형인 딕셔너리를 사용하면 손쉽게 풀 수 있다.
따라서 dic={} 을 통해 딕셔너리를 먼저 선언해주었다.
그 후 n개만큼의 for문을 돌려 a, b에 각각 "저장할 사이트의 주소"와 "비밀번호"를 입력 해주었다.
딕셔너리에 추가하는 방법으로는 dic[a] = b 를 통해 key값인 a에 해당하는 value값 b를 저장해주었다.
다음으로 m개의 찾으려는 비밀번호를 출력하기 위해 m만큼 for문을 돌려 t 에 찾으려는 사이트 값을 저장한 후
dic[t]를 출력해주어 정상적으로 찾으려는 사이트의 비밀번호가 출력될 수 있도록 작성해 주었다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ/python] 14247번 나무 자르기 (0) | 2022.02.14 |
---|---|
[BOJ/python] 10989번 수 정렬하기 3 (0) | 2022.02.06 |
[BOJ/python] 1157번 단어 공부 (0) | 2022.01.25 |
[BOJ/python] 10867번 중복 빼고 정렬하기 (0) | 2022.01.23 |
[BOJ/python] 4458번 첫 글자를 대문자로 (0) | 2022.01.16 |