다이나믹프로그래밍 14

[n14916] 거스름돈 in python

동전의 개수가 최소? 11 12 13 14 15 16 17 18 19 20 숫자 1과 3만 제외하면 어떤 숫자든 5랑 2로 나누어짐 1이랑 3만 안 될뿐!! 17원 5원 * 3개 , 2원 * 1개 13원 5원 * 2개 x 5원 * 1개, 2원 * 4개 11원 5원 * 2개 , 2원 * 1개 , 1이 초과된다 x 5원 * 1개 , 2원 * 3개 n = int(input()) cnt = 0 temp = n % 5 # 나머지 if n == 1 or n == 3: print(-1) exit(0) elif temp % 2 == 0: # 2로 딱 떨어지면 cnt = n // 5 + temp // 2 print(cnt) exit(0) else: cnt = n // 5 - 1 + (temp + 5) // 2 print..

카테고리 없음 2021.10.08

[n7579] 앱 in python

https://www.acmicpc.net/problem/7579 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활 www.acmicpc.net (처음 든 생각) 최소비용,,, BFS인가,,, 사실 잘 모르겠다..! 그래서 고민 끝에 풀이를 봤다. (풀이 너무 찾아보는 거 아닌가 싶지만, 아무리 고민해도 모르겠어서 그냥 보고 배우는 게 낫겠다싶었다) BFS가 아니라 DP 이용하는 것! DP는 넘 어렵다아... 피보나치 수열 풀 땐 알겠는데,,, 이 문제에선 도저히 모르겠... (DP 이용 풀이) 필요한 메모리 M 바이트를 확보하기 위한 앱 비활성..

[n15486] 퇴사 2 in python

https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net (처음 든 생각) 항상 완탐부터 생각난다.... 하지만 딱 떠오르는 생각이 없었다. 아무리 생각해봐도 모르겠어서 인터넷 풀이 검색.. (풀이 : dp) 처음에 input()으로 입력값을 받았는데 시간초과, sys.stdin.readlin() 사용하니까 통과함! 이 문제는 완탐으로 하면 시간초과가 뜬다 연산개수가 150만개라서..! 생각해야 하는 부분 1. 해당 날짜에..

[n13699] 점화식

https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 매번 점화식을 재귀함수로 구하면 시간이 매우 오래걸려서 메모이제이션 방식을 사용하여 푼다. 처음엔, for문을 한 번만 돌리면 되는 줄 알았다. n=3일경우 f(3)= f(0)*f(2) + f(1)*f(1) + f(2)*f(0)이니까 3번만 돌리면 되..