본문 바로가기
알고리즘/매일마다 풀기(백준)

[2023-05-02] 9095 1, 2, 3 더하기(Kotlin) + 14문제

by joh9911 2023. 5. 2.

 

문제 링크: 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])

    }
}

 

 

 

댓글