본문 바로가기

DP2

[BOJ] 10844 쉬운 계단 수 - python 10844번: 쉬운 계단 수 (acmicpc.net) 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 계단 수는 23, 454처럼 각 자리수가 1씩 차이나는 수를 말한다. 10844 쉬운 계단 수는 N이라는 입력을 받았을 때, N 자리 계단수의 총 개수를 출력하는 문제였다. DP 문제였는데, 점화식을 세우는 부분이 조금 어려웠다. N==1, 한 자리 수라면, 1,2,3,4,5,6,7,8,9 총 9개의 계단 수를 갖는다. N==2, 두 자리 수라면, 10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98 총 17개의 계단 수를 갖는다. 4자리 수의 마지막이 7로 끝나는 계단 수의 경우의 수를.. 2022. 4. 27.
[BOJ] 1463번 1로 만들기 - python 오늘 푼 문제는 백준 1463번 1로 만들기다. DP(Dynamic Programming)로 해결해야하는 문제다. 동적 프로그래밍은 큰 문제의 해답에 작은 문제의 해답이 포함되어있고, 이를 재귀호출 알고리즘으로 구현하면 지나친 중복이 발생하는 경우에 이 재귀적 중복을 해결하는 방법을 뜻한다. 이러한 문제들은 최적 부분 구조(Optional Substructure)를 가졌다고 한다. 아래는 1463번 문제이다. 대충 생각하면 단순하게 조건문을 사용하여 2로 나눠지는 경우, 3으로 나눠지는 경우, 아닐 때로 나누어서 풀면 될 것이라고 생각할 수도 있다. 그러나 힌트에 나와있듯 10을 /3 -> /2 -> -1 순서로 계산한다면 10 / 2 = 5 5 - 1 = 4 4 / 2 = 2 2 / 2 = 1 이러한 .. 2021. 12. 31.