깃허브:
https://github.com/MSIQOC/Programmers/blob/main/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98%EC%88%98.py
https://programmers.co.kr/learn/courses/30/lessons/12945
아주 간단한 다이나믹프로그래밍 문제로 (A+B) % C 와 (A % C + B %C) % C가 같다는 나머지 연산 법칙만 알면 쉽게 풀 수 있다.
다이나믹 프로그래밍은 작은것부터 시작해서 큰걸 알아내는 기법이기 때문에 여기에서는 f[0]와 f[1]을 먼저 구해두고 2부터는 f[i] = f[i-1] + f[i-2] 라는 식으로 반복문을 돌리면 된다.
1
2
3
4
5
6
7
8
|
def solution(n):
dp = [0] * (n+1)
dp[1] = 1
for i in range(2, n+1) :
dp[i] = dp[i-1] % 1234567 + dp[i-2] % 1234567
dp[i] = dp[i] % 1234567
answer = dp[n]
return answer
|
cs |
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 2단계 - 실패율(Java) (0) | 2021.09.05 |
---|---|
프로그래머스 3단계 - 가장 먼 노드 (Python, Java) (0) | 2021.08.31 |
프로그래머스 2단계 - 카펫(Java) (0) | 2021.08.09 |
프로그래머스 1단계 - K번째 수(Python) (0) | 2021.08.01 |
프로그래머스 3단계 - 이중우선순위큐(Python, Java) (0) | 2021.07.30 |