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

[2023-04-29] 1003 피보나치 함수(Kotlin) + 8문제

by joh9911 2023. 4. 29.

 

문제 링크: https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

// 0의 횟수와 1의 횟수를 구하는 것이므로 Pair를 이용
// 바로 직전의 index의 횟수와, 이전의 이전 index의 횟수를 더한 값을 dp 배열에 저장


package `twenty nineth Day`
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(n+1){Pair(0,0)}
        if (n ==0)
            println("1 0")
        else if (n==1)
            println("0 1")
        else {
            dp[0] = Pair(1,0)
            dp[1] = Pair(0,1)
            for (index in 2..n){
                dp[index] = Pair(dp[index-1].first+dp[index-2].first,dp[index-1].second+dp[index-2].second)
            }
            println("${dp[n].first} ${dp[n].second}")
        }
    }
}

 

 

 

 

훨씬 많이 풀 수 있었는데,

 

골드5 문제 고민하다가 시간을 날렸어요..

댓글