본문 바로가기

알고리즘

[백준][KOTLIN] 1904 01타일

728x90

 

 

1904번: 01타일

지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이

www.acmicpc.net

풀이

  • 문제의 규칙성을 찾는다.
    • N = 1 -> 1
    • N = 2 -> 2
    • N = 3 -> 3
    • N = 4 -> 5
    • N = 5 -> 8
  • 위의 과정을 봤을 때 피보나치 수열의 규칙을 나타낸다.
  • 각 2진 수열의 개수를 15746 값으로 나눈 나머지를 저장한다.

코드

import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()
    val dp = IntArray(n + 1)
    dp[0] = 1
    dp[1] = 1

    for (i in 2..n) {
        dp[i] = dp[i - 1] + dp[i - 2]
    }

    println("${dp[n]}")
}
728x90