목록BOJ (335)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pyrH2/btrK1h9E7hg/D1UNHRSkQlKEmgcqFg9TW1/img.png)
👉 문제링크 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 🔸 문제 분석 🔸 해시 맵 문제이다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().rstrip().split()) passwd = dict() for _ in range(n): i = sys.stdin.readline().rstrip().split() passwd[i[0]] = i[1] for _ in range(m): sys.stdout.write(passwd[sys..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/QJkI6/btrKTOt65HS/m7zHizKyhK2n9Z4euMr7K0/img.png)
👉 문제링크 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 🔸 문제 분석 🔸 걸리는 시간 숫자의 수와 숫자들의 리스트가 입력된다. 각 리스트 별 끝나는 시간들의 총합의 최소값을 출력한다. 문제 설명은 그리디 알고리즘 이지만, 정렬로 간단히 풀린다. 🔸 코드 🔸 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().rstrip().split())) arr.sort() sum_num = 0 for i in range(n): sum_num += sum(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKUTFI/btrKOhPAaIm/GvHe10rKXQH2S8cgB8mrf1/img.png)
👉 문제링크 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 🔸 문제 분석 🔸 동전 종류 수 n과 만들 가치의 합 k, 동전 종류를 입력받는다. 동전을 최소로 사용하면서 k를 만든다. 🔸 코드 🔸 import sys n, k = map(int, sys.stdin.readline().split()) coin = [] for i in range(n): c = int(sys.stdin.readline()) if c = i: answer += k//i k..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjPIUM/btrKHVzTReC/i7A3jZZJaLqrRYIm1XLvK0/img.png)
👉 문제링크 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 이름들을 n개 입력받고, 다시 m번 입력받아 겹치는 이름들을 체크한다. 해시를 활용하는 문제이다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().split()) name = set() answer = list() for i in range(n): name.add(sys.stdin.readline().rstrip()) for i in range(m): isin = sys.stdin..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l0hVZ/btrKFETA4hd/W0aySAhLyV82YdJizF2x61/img.png)
👉 문제링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 🔸 문제 분석 🔸 포켓몬 이름을 입력받고, 번호 혹은 포켓몬 이름으로 검색, 출력한다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().split()) book = {} number = 1 for i in range(n): poket = sys.stdin.readline().rstrip() if poket not in book: book[poket] = number num..