백준 17219 파이썬 문제 풀이
문제 링크
https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
문제
입력
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다.
두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 주어진다. 사이트 주소는 알파벳 소문자, 알파벳 대문자, 대시('-'), 마침표('.')로 이루어져 있고, 중복되지 않는다. 비밀번호는 알파벳 대문자로만 이루어져 있다. 모두 길이는 최대 20자이다.
N+2번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소가 한줄에 하나씩 입력된다. 이때, 반드시 이미 저장된 사이트 주소가 입력된다.
출력
첫 번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소의 비밀번호를 차례대로 각 줄에 하나씩 출력한다.
제출 코드
N, M = map(int, input().split())
dic = {}
for i in range(N):
key, values = input().split()
dic[key] = values
for i in range(M):
print(dic.get(input()))
오답 코드
딕셔너리가 익숙하지 않아 리스트로 구현하기에 급급해서 조금 돌아 갔던 것 같다.
아래는 리스트와 딕셔너리를 비교하였을때 딕셔너리의 장점이다.
키-값 쌍 저장:
딕셔너리는 키(key)와 값(value)의 쌍을 저장하는 자료 구조입니다. 이는 데이터를 빠르게 검색하고 찾을 수 있게 해줍니다. 특히, 키를 사용하여 값을 빠르게 찾을 수 있으므로 매우 효율적입니다.
빠른 검색:
딕셔너리는 내부적으로 해시 테이블을 사용하므로 데이터를 빠르게 검색할 수 있습니다. 이는 데이터베이스나 검색 연산이 필요한 경우에 유용합니다.
유연한 키:
딕셔너리의 키는 문자열, 숫자, 튜플 등의 해시 가능한(Hashable) 데이터 타입이 될 수 있습니다. 이로 인해 다양한 데이터를 키로 사용할 수 있어 다양한 상황에 적용 가능합니다.
데이터 그룹화:
딕셔너리는 데이터를 특정 그룹 또는 범주로 구분할 때 유용합니다. 예를 들어, 학생들의 성적을 저장할 때 각 학생의 이름을 키로 사용하여 그 학생의 성적을 값으로 저장할 수 있습니다.
데이터 업데이트 용이:
딕셔너리는 키를 사용하여 값을 갱신하거나 새로운 키-값 쌍을 추가하기가 매우 쉽습니다. 이로 인해 데이터의 동적인 변경이 용이합니다.
중복 제거:
딕셔너리는 각 키가 유일해야 하므로 중복된 키를 허용하지 않습니다. 이는 중복 데이터를 방지하고 일관성을 유지하는 데 도움이 됩니다.
'Python > 알고리즘 - 백준' 카테고리의 다른 글
백준 1260 파이썬 문제 풀이 : DFS와 BFS (1) | 2023.11.01 |
---|---|
백준 1003 파이썬 문제풀이 (1) | 2023.10.05 |
백준 11399 파이썬 문제 풀이 (0) | 2023.09.25 |
백준 11047 파이썬 문제 풀이 (0) | 2023.09.25 |
백준 1764 파이썬 문제 풀이 (0) | 2023.09.22 |