[Algorithm][Python] 백준(BOJ) 2193 이친수

최대 1 분 소요

[문제]

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

image

image


[내 코드]

DP 문제

n = int(input())

d = [0] * (n+1) #91로 해도됨
d[1] = 1
d[2] = 1

for i in range(3, n+1):
    d[i] = d[i-1] + d[i-2]

print(d[n])

위의 코드에서 IndexError가 나서 찾아보는데 (n+1)이 문젠가 싶어서 91로 바꿨는데 잘됨… 이떄까지만 해도 왜 문젠지 몰랐는데 생각해보니까 (n == 1)의 경우 d[2]가 있을 수가 없더라….~ㅋㅋㅋㅋㅋㅋㅋ맞왜틀만 계속 외치고 있었는데ㅋㅋㅋㅋㅋ내가 바보였다.~

#### 해결

n = int(input())

if n == 1:
    print(1)
else:
    d = [0] * (n+1)
    d[1] = 1
    d[2] = 1

    for i in range(3, n+1):
        d[i] = d[i-1] + d[i-2]

    print(d[n])

image

댓글남기기