문제- https://www.acmicpc.net/problem/11047풀이입력으로 들어온 동전들을 사용하여 K원을 만드는데 필요한 동전 개수의 최솟값을 출력하는 것이 목적이다 최적의 해를 구하기 위해선 가장 큰 화폐단위부터 거슬러주면 된다. n원을 거슬러줘야할 때 가장 큰 금액으로 거슬러 줄 수 있을만큼 거슬러 주고, 그 다음으로 큰 숫자만큼 거슬러주면 된다코드def solve(k): cnt = 0 for i in coin: if k >= i: cnt += k//i k %= i if k
백준
문제 - https://www.acmicpc.net/problem/17219풀이먼저 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 다음줄부터 사이트 주소와 비밀번호를 입력받는데 이때 딕셔너리를 사용해주소를 key , 비밀번호를 value로 하여 받아준다. 이후 찾으려는 사이트 주소들을 하나의 list에 담아주고for문을 통해 list 값을 하나씩 가져와서 딕셔너리의 key와 일치하는 값이 있으면 해당 key의 value를 출력해주면된다. 코드n,m = map(int,input().split())web = {}url_li = []for _ in range(n): url,pw = input()...
문제- https://www.acmicpc.net/problem/1764풀이듣도 못한 사람의 수 N , 보도 못한 사람의 수 M을 입력받는다둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과 N+2째 줄부터보도 못한 사람의 이름을 입력받는다.여기서 두개의 명단에는 중복되는 이름이 없어야하는데 때문에 중복을 허용하지 않는다는특징을 가진 집합형 자료구조 set을 떠올려주면 된다.set d(듣도 못한 사람) ,b(보도 못한 사람)를 선언해주고 앞서 말한대로 입력 받는다.그 후 for문을 사용해 듣도 못한 사람의 명단과 보도 못한 사람의 명단에 모두 이름이 있는 이름을 result list에 담아주고 sort를 사용해 사전순으로 정렬해준 후 출력해준다.코드n, m = map(int,input().split(..
문제- https://www.acmicpc.net/problem/17219풀이먼저 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 입력 받아야한다이후 N+2번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소를 입력 받는다앞서 주소와 비밀번호가 매칭되어있다는점에서 key와 value를 떠올리고딕셔너리를 사용할 수 있다는 생각을 하면된다 for문을 통해 M번동안 돌면서M개의 사이트 주소 (key)을 대조하고맞는 key가 있으면 key에 대한 value(비번)을 출력해주면 된다. 코드n,m = map(int,input().split())web = {}url_li = []for _ in range(n): url,pw = input().split() web[url] = ..
문제- https://www.acmicpc.net/problem/1251풀이부루트포스 알고리즘을 이용하여 세 단어로 쪼갤 수 있는 모든 경우의 수를 실행하고나눠진 단어를 뒤집어 주어 list에 저장한다 그리고 sorted()를 사용해 사전순으로 정렬해주고 출력해준다.코드string = input()answer = []for i in range(1,len(string)): #for문으로 세 단어로 나눈다 for j in range(i+1,len(string)): front = string[:i][::-1] #[::-1] : 문자열 거꾸로 뒤집기 mid = string[i:j][::-1] end = string[j:][::-1] answer.ap..
문제https://www.acmicpc.net/problem/2566풀이해당 문제를 풀기 위해서는 2차원 배열을 사용하여야한다.코드#include int main(void) { int num, x, y; // x : 행 , y : 열 int max = -1; // max값은 0일 가능성도 있으니 -1로 초기화 int i, j; for (i = 1; i