ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

문제

 

2193번: 이친수

0κ³Ό 1둜만 이루어진 수λ₯Ό μ΄μ§„μˆ˜λΌ ν•œλ‹€. μ΄λŸ¬ν•œ μ΄μ§„μˆ˜ 쀑 νŠΉλ³„ν•œ μ„±μ§ˆμ„ κ°–λŠ” 것듀이 μžˆλŠ”λ°, 이듀을 이친수(pinary number)라 ν•œλ‹€. μ΄μΉœμˆ˜λŠ” λ‹€μŒμ˜ μ„±μ§ˆμ„ λ§Œμ‘±ν•œλ‹€. μ΄μΉœμˆ˜λŠ” 0으둜 μ‹œμž‘ν•˜μ§€ μ•Š

www.acmicpc.net

 

문제 풀이

 μžλ¦¬ 수의 증가에 따라 λ‹€μŒκ³Ό 같은 경우의 수λ₯Ό 확인할 수 μžˆλ‹€.

자리 수 1 2 3 4 5
  1 10 101 1000 10000
      100 1001 10001
        1010 10010
          10100
          10101

즉, N에 따라 λ§Œμ‘±ν•˜λŠ” 이친수의 κ²½μš°λŠ” f(n) = f(n - 1) + f(n - 2)λΌλŠ” 것을 μ•Œ 수 μžˆλ‹€. 이λ₯Ό μ½”λ“œλ‘œ κ΅¬ν˜„ν•˜λ©΄ κ°„λ‹¨νžˆ 문제λ₯Ό ν•΄κ²° ν•  수 μžˆλ‹€.

 

μ½”λ“œ

if __name__ == '__main__':
    n = int(input())
    a, b = 1, 1
    for _ in range(n - 1):
        a, b = b, a + b
    print(a)
728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€