[Python] 백준 10844번:쉬운 계단 수 / 문제 풀이, 설명
[Python] 백준 10844번:쉬운 계단 수 / 문제 풀이, 설명 º 코드 N = int(input()) dp = [[0,1,1,1,1,1,1,1,1,1] for _ in range(N+1)] for i in range(2,N+1): for j in range(10): if j == 0: dp[i][0] = dp[i-1][1] elif j == 9: dp[i][9] = dp[i-1][8] else: dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] print(sum(dp[N])%10**9) º 풀이 1. 풀이 과정 N이 2일 때 맨 뒤에 0이 오는 경우 : 01 (1개) 1이 오는 경우 : 21 (1개) 2가 오는 경우 : 12,32 (2개) 즉 2가 올려면 앞에서 1과 3이 나와..
2022. 10. 26.
[Python] 백준 9461번:파도반 수열 / 문제 풀이, 설명
[Python] 백준 9461번:파도반 수열 / 문제 풀이, 설명 º 코드 def Dp(n): tri = [1,1,1] if n>=4: for i in range(3,n+1): tri.append(tri[i-2] + tri[i-3]) return tri[n-1] n = int(input()) for _ in range(n): print(Dp(int(input()))) n은 1부터 시작하니 tri 인덱스와 맞추기 위해 -1을 해야한다. º 풀이 과정 ( 1,1,1,2,2,3,4,5,7,9 - - - ) 이렇게 숫자가 늘어선다 수의 규칙을 잘 보면 4번째부터 f(4) = f(2)+f(1) / f(5) = f(3) + f(2) / f(6) = f(4) + f(3) 이렇게 된다. 결국 N이 4이상 일 때 f(N..
2022. 10. 18.