Algorithm/Baekjoon

[ë°ąė¤€] (Swift) 2193번 - ė´ėšœėˆ˜ (ėŠ¤ėœ„í”„íŠ¸ dp, ë™ė ęŗ„íšë˛•, 2밍뛐)

ę°ėž đŸĨ” 2022. 3. 12. 16:42
ë°˜ė‘í˜•

ëŦ¸ė œ 링íŦ

https://www.acmicpc.net/problem/2193

 

2193번: ė´ėšœėˆ˜

0ęŗŧ 1로만 ė´ëŖ¨ė–´ė§„ 눘ëĨŧ ė´ė§„ėˆ˜ëŧ 한다. ė´ëŸŦ한 ė´ė§„ėˆ˜ 뤑 íŠšëŗ„í•œ ė„ąė§ˆė„ 갖는 ę˛ƒë“¤ė´ ėžˆëŠ”ë°, ė´ë“¤ė„ ė´ėšœėˆ˜(pinary number)ëŧ 한다. ė´ėšœėˆ˜ëŠ” ë‹¤ėŒė˜ ė„ąė§ˆė„ ë§ŒėĄąí•œë‹¤. ė´ėšœėˆ˜ëŠ” 0ėœŧ로 ė‹œėž‘í•˜ė§€ ė•Š

www.acmicpc.net

 

í’€ė´ IDEA

N=2 ëļ€í„° ęˇœėš™ė„ ė°žė•„ëŗ´ë‹ˆęšŒ, ė´ė „ė— í’€ė—ˆë˜ ë™ė ęŗ„íšë˛• ëŦ¸ė œė™€ ëš„ėŠˇí•˜ę˛Œ ëėžëĻŦ뗐 따ëŧė„œ ę˛Ŋėš°ę°€ ë‚˜ë‰˜ė—ˆë‹¤. ė•„ëž˜ė™€ ę°™ė´ ė í™”ė‹ė„ 도ėļœí•  눘 ėžˆë‹¤.

 

ė´ëĨŧ ėŊ”ë“œëĄœ ęĩŦ현하면 ė•„ëž˜ė™€ 같다. 

let n = Int(readLine()!)!
var dp = [[Int]](repeating: Array(repeating: 0, count: 2), count: n+1)

if n == 1 {
    print(1)
} else {
    dp[2][0] = 1
    dp[2][1] = 0

    for i in 3..<n+1 {
        dp[i][0] = dp[i-1][0] + dp[i-1][1]
        dp[i][1] = dp[i-1][0]
    }

    print(dp[n][0]+dp[n][1])
}
ë°˜ė‘í˜•