본문 바로가기

알고리즘/백준 문제 풀이

[Python] 16456번 하와와 대학생쨩 하와이로 가는 거시와요~ (추후 보강 예정)

728x90

16456번: 하와와 대학생쨩 하와이로 가는 거시와요~ (acmicpc.net)

 

16456번: 하와와 대학생쨩 하와이로 가는 거시와요~

첫째 줄에 하와이 열도의 섬의 개수 n(1 ≤ n ≤ 50,000)이 주어지는 거시와요 하와와. 하와와! 답이 커질 수 있으니 1,000,000,009로 나눈 나머지를 출력해 주시는 거시와요!

www.acmicpc.net


 

22/09/03

 

 

그룹 연습에서 푼 문제로, DP문제여서 몇 개 나열해보다가 신뢰의 제출을 해서 맞았다.


 

문제 접근 방식:

 

먼저 숫자를 몇 개 구해봤다. 그래서 점화식을 dp[i] = (dp[i-1] + dp[i-3]) 과 같이 유추를 했는데, 그에 대한 정당성을 세워야만 했다.

 

근데 아직까지 정당성을 세우지는 못했다. 이후 정당성을 세운다면, 보충해서 작성할 예정이다.


아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.

더보기
# 16456번 하와와 대학생쨩 하와이로 가는 거시와요~
# DP
dp = [0 for _ in range(50001)]
dp[1], dp[2], dp[3] = 1, 1, 2
N = int(input())
if N <= 3:
    print(dp[N])
else:
    for i in range(4, N+1):
        dp[i] = (dp[i-1] + dp[i-3]) % 1000000009
    print(dp[N])

'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글

[Python] 7576번 토마토  (0) 2022.09.20
[Python] 2381번 최대 거리  (0) 2022.09.20
[Python] 16956번 늑대와 양  (0) 2022.09.13
[Python] 1551번 수열의 변화  (0) 2022.09.13
[Python] 21313번 문어  (0) 2022.09.13