문제 링크: 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 문제 고민하다가 시간을 날렸어요..
'알고리즘 > 매일마다 풀기(백준)' 카테고리의 다른 글
[2023-05-01] 12865 평범한 배낭 (Kotlin) + 1문제 (0) | 2023.05.01 |
---|---|
[2023-04-30] 1193 분수찾기 + 3문제 (0) | 2023.04.30 |
[2023-04-28] 가장 긴 바이토닉 부분 수열(Kotlin) + 13 문제 (0) | 2023.04.28 |
[2023-04-27] 11053 가장 긴 증가하는 부분(Kotlin) (0) | 2023.04.27 |
[2023-04-25] 2156 포도주 시식(Kotlin) (0) | 2023.04.25 |
댓글