본문 바로가기

코딩테스트 준비(kotlin)/다이나믹 프로그래밍(DP)2

[프로그래머스, kotli] N으로 표현 풀이dp[i]는 N을 i번 사용하여 만들 수 있는 숫자들의 집합을 의미합니다.초기값으로 dp[1]={N}를 설정합니다.예를 들어, N=5일 때, dp[1]={5}입니다.구체적인 점화식 설명예제: 숫자 N=5 이고 원하는 숫자가 12인 경우dp[1]: 숫자 N을 1번 사용가능한 숫자: {5}dp[2]: 숫자 N을 2번 사용연속으로 붙여서 만든 숫자: {55}dp[1]과 dp[1]을 사칙 연산으로 조합하여 만든 숫자:{5+5, 5−5, 5∗5, 5/5}={10, 0, 25, 1}따라서 dp[2]는 {55, 10, 0, 25, 1}입니다.dp[3]: 숫자 N을 3번 사용연속으로 붙여서 만든 숫자: {555}dp[1]과 dp[2]를 사칙 연산으로 조합하여 만든 숫자:{5+10, 5−10, 5∗10, 5/10}=.. 2024. 8. 5.
다이나믹 프로그래밍(DP)이란 무엇일까 ? Dynamic Programming (동적 계획법)이란 ?동적계획법(다이나믹 프로그래밍) 이란, 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 이것은 부분 문제 반복과 최적 부분 구조를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간을 내어 풀 때 사용한다. 예를 들어 코딩 테스트 문제를 풀다 보면 아래와 같은 제한사항이 종종 나오는데, 간혹 제한사항에 주어지는 숫자의 범위가 크고 경우의 수가 엄청난 값의 문제들이 대부분 DP를 이용해서 풀어야 하는 것이라고 알게 되었다. Dynamic Programming 알고리즘 조건 1) problem이 sub-problem으로 나누어 질 때2) 각 sub-problem의 solution을 통해 상위 problem의 솔루션을 구할 .. 2024. 6. 18.