λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸƒ algorithm/boj

BOJ 9625 - BABBA

by HandHand 2021. 3. 8.

문제

λ°±μ€€ 온라인 저지 - 9625번

풀이 κ³Όμ •

동적 κ³„νšλ²• 을 ν™œμš©ν•œ λ¬Έμ œμž…λ‹ˆλ‹€.
각 λ¬Έμžκ°€ 일정 κ·œμΉ™μœΌλ‘œ λ³€ν™˜λ˜λŠ”λ° 이λ₯Ό ν™œμš©ν•΄μ„œ 점화식을 μ„Έμš°λ©΄ λ©λ‹ˆλ‹€.

μ € 같은 경우 λ¬Έμž₯의 길이가 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ λ”°λ₯΄λ©΄μ„œ B 의 κ°œμˆ˜λ„
ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ κ°œμˆ˜λŒ€λ‘œ μ¦κ°€λœλ‹€λŠ” 것을 μ΄μš©ν•΄μ„œ 문제λ₯Ό ν’€μ—ˆλŠ”λ°
λ‹€λ₯Έ λΆ„λ“€μ˜ 풀이λ₯Ό λ³΄λ‹ˆ κ·Έλƒ₯ A 와 B 각각에 λŒ€ν•΄μ„œ 점화식을 μ„Έμš°κ³  순회λ₯Ό ν•˜λ©΄ κ°„λ‹¨ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

K κ°€ μž‘κΈ° λ•Œλ¬Έμ— μ™„μ „ 탐색 으둜 κ΅¬ν˜„ν•΄λ„ ν’€ 수 μžˆμ„ 것 κ°™κΈ°λŠ” ν•œλ°
이후에 λΉ„μŠ·ν•œ μœ ν˜•μ— λŒ€λΉ„ν•΄μ„œ μ ‘κ·Ό 방법을 기얡해놔야 ν•  것 κ°™μŠ΅λ‹ˆλ‹€.

μ½”λ“œ



K = int(input())


def solution():
    dp = [-1] * (K + 1)
    dp[0], dp[1] = 1, 1

    for i in range(2, K + 1):
        dp[i] = dp[i - 1] + dp[i - 2]

    if K == 1:
        return "0 1"
    else:
        return f"{dp[K] - dp[K - 1]} {dp[K - 1]}"


print(solution())
λ°˜μ‘ν˜•

'πŸƒ algorithm > boj' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

BOJ 6497 - μ „λ ₯λ‚œ  (0) 2021.03.08
BOJ 6156 - Cow Contest  (0) 2021.03.08
BOJ 11952 - μ’€λΉ„  (0) 2021.03.08
BOJ 20055 - 컨베이어 벨트 μœ„μ˜ λ‘œλ΄‡  (0) 2021.03.08
BOJ 20044 - Project Teams  (0) 2021.03.08

πŸ’¬ λŒ“κΈ€