문제 링크: https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
제가 이해력이 부족한 건지..
저는 합으로 나타내는 방법의 수를 구하라 하길래,
n이 1일 경우: 0
n이 2일 경우: 1 -> 1 + 1
위와 같은 줄 알았습니다.
결국 규칙을 찾지 못해 해답을 보고 나서야,
1일 경우: 1 -> 1
2일 경우: 2 -> 1 + 1, 2
라는 사실을 알 수 있었습니다.
// 이전 것 3개를 더하면 된다.
// 1 2 3 4 5 6
// 1 2 4 7 13 24
// 7 = 1 + 2 + 4
// 13 = 2 + 4 + 7
// ...
package thirtySecond
import java.io.*
fun main(){
val br = BufferedReader(InputStreamReader(System.`in`))
val t = br.readLine().toInt()
repeat(t){
val n = br.readLine().toInt()
val dp = Array(12){0}
dp[1] = 1
dp[2] = 2
dp[3] = 4
for (index in 4..n){
dp[index] = dp[index-3] + dp[index-2] + dp[index-1]
}
println(dp[n])
}
}
'알고리즘 > 매일마다 풀기(백준)' 카테고리의 다른 글
[2023-05-04] 18111 마인크래프트 (Kotlin) + 9문제 (0) | 2023.05.04 |
---|---|
[2023-05-03] 1107 리모컨 (Kotlin) + 12문제 (0) | 2023.05.03 |
[2023-05-01] 12865 평범한 배낭 (Kotlin) + 1문제 (0) | 2023.05.01 |
[2023-04-30] 1193 분수찾기 + 3문제 (0) | 2023.04.30 |
[2023-04-29] 1003 피보나치 함수(Kotlin) + 8문제 (0) | 2023.04.29 |
댓글