159901 [Baekjoon/Python] 백준: 15990 1, 2, 3 더하기 5 다이나믹 프로그래밍 (DP) 문제입니다.사실 간단해 보이는 문제였지만, 같은 수를 두 번 이상 연속해서 사용해서는 안된다.라는 조건이 있어서 생각보다는 쉽지 않았던 문제입니다. 마지막에 어떤 수를 배열했는지만 알면, 숫자가 연속되는 것을 막을 수 있다는 것만 활용하면 금방 풀리는 문제였습니다. 123마지막이 1101 => 2 + 1마지막이 2011 => 1 + 2마지막이 3001 => 3 이런식으로 마지막이 어떤 숫자로 끝나는 지에 따라 dp 배열을 달리 했습니다. 그러면 그 다음 4부터는 어떻게 구하면 될까요? 이런식으로 규칙을 찾아냈습니다.dp[2][4] = dp[1][2] + dp[3][2] 이므로 0입니다. import sysinput = sys.stdin.readlinedp = [[0] .. 2025. 3. 25. 이전 1 다음