일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 자바스크립트
- dfs
- programmers
- 백준
- Python
- pyhton
- 일임형
- algoritms
- Algorithm
- Ai
- BAEKJOON
- 신한투자증권
- 자문형
- 모던자바스크립트
- 스택
- BFS
- 자료구조
- 프로그래머스
- SSAFY
- 혁신금융서비스
- JavaScript
- React #Web #프런트엔드
- JS
- 로보어드바이저
- algorithms
- 큐
- RPA
- 알고리즘
- frontend
- 파이썬
- Today
- Total
Step by Step
[baekjoon] 비밀번호 찾기(17219) - Python 본문
문제 링크
https://www.acmicpc.net/problem/17219
문제 이해
2019 HEPC - MAVEN League의 "비밀번호 만들기"와 같은 방식으로 비밀번호를 만든 경민이는 한 가지 문제점을 발견하였다. 비밀번호가 랜덤으로 만들어져서 기억을 못 한다는 것이었다! 그래서 경민이는 메모장에 사이트의 주소와 비밀번호를 저장해두기로 했다. 하지만 컴맹인 경민이는 메모장에서 찾기 기능을 활용하지 못하고 직접 눈으로 사이트의 주소와 비밀번호를 찾았다. 메모장에 저장된 사이트의 수가 늘어나면서 경민이는 비밀번호를 찾는 일에 시간을 너무 많이 쓰게 되었다. 이를 딱하게 여긴 문석이는 경민이를 위해 메모장에서 비밀번호를 찾는 프로그램을 만들기로 결심하였다! 문석이를 도와 경민이의 메모장에서 비밀번호를 찾아주는 프로그램을 만들어보자.
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다.
두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 주어진다. 사이트 주소는 알파벳 소문자, 알파벳 대문자, 대시('-'), 마침표('.')로 이루어져 있고, 중복되지 않는다. 비밀번호는 알파벳 대문자로만 이루어져 있다. 모두 길이는 최대 20자이다.
N+2번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소가 한줄에 하나씩 입력된다. 이때, 반드시 이미 저장된 사이트 주소가 입력된다.

처음에 문제를 봤을 때 중복되지 않는다는 조건 때문에 사전을 사용하려고 생각했다.
사전에 값을 하나씩 넣어준 후 사이트만 나와있는 문자가 n+2 열부터 주어질 때 해당 값에 대한 비밀번호만 출력하는 방식을 사용했다.
이 과정에서 사전에 대한 개념이 부족해서 찾아보았다.
**Dictionary 개념
new_dict = dict() # Dictionary 정의
new_dict = { 'one' : 0, 'two' : 2 } # Dictionary 수정
new_dict['one'] = 1
new_dict = { 'one' : 1, 'two' : 2 } # Dictionary 추가
new_dict['three'] = 3
new_dict = { 'one' : 1, 'two' : 2, 'three' : 3 } # Dictionary 삭제
del(new_dict['one']) # del 대신에 pop을 사용할 수도 있다.
new_dict.pop('one')
new_dict.keys() # 키들만 출력
new_dict.values() # 값들만 출력
new_dict.get('one') # 값이 없으면 None 출력
new_dict['one'] # 값이 없으면 오류 발생
dic = {"aa":1, "bb":2,"cc":3} # for문 활용법
for key, value in dic.items():
print(key,value)
코드
import sys
N,M = map(int,sys.stdin.readline().split())
cookie = dict()
for _ in range(N+M):
site = list(map(str,sys.stdin.readline().split()))
if len(site) == 2:
cookie[site[0]] = site[1]
else:
print(cookie[site[0]])
'Algorithms' 카테고리의 다른 글
[백준] 단어 뒤집기 2(17413) - Python (0) | 2024.10.10 |
---|---|
[백준] 후위표기식(1918) - Python (1) | 2024.10.09 |
[baekjoon] 탑(2493) - Python (6) | 2024.10.08 |
코딩 테스트 대비 개념정리 - SQL (0) | 2024.05.10 |
코딩 테스트 대비 개념 정리 - Python (0) | 2024.05.07 |