728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12914
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 아이디어
1. 1,2로 이루어진 조합의 합계가, 주어진 수 n을 만족하는 경우의 수를 찾음. (제 경우 일일히 확인해보았습니다.)
2. 피보나치 수열의 특성을 보임을 확인함.
n | cnt | 이전 값과의 차 |
1 | 1 | 1 |
2 | 2 | 1 |
3 | 3 | 1 |
4 | 5 | 2 |
5 | 8 | 3 (1+2) |
6 | 13 | 5 (2+3) |
3. 1 <= n <= 2000 범위에서 피보나치 수열을 시간제한 내에 구현할 수 있는 방법은? 동적계획법(다이나믹 프로그래밍)
4. 동적계획법 말은 거창하지만, 결국 계산된 결과를 배열 내에 저장한 후 호출하는 방식임.
5. 문제 조건에 맞게 구현해보자
소스코드 (Python)
def solution(n):
'''
규칙성을 찾는 문제
n | cnt
1 1
2 2
3 3
4 5
5 8
6 13
피보나치 수열의 특성을 보임 (1+2=3, 2+3=5, 3+5=8, 5+8=13, ...)
'''
if n <= 2:
answer = n
else:
numbers = [1,2] #
for i in range(3,n+1):
n_cnts = numbers[i-2] + numbers[i-3]
numbers.append(n_cnts)
answer = numbers[n-1]
return answer % 1234567
결과
굿굿
반응형
'코딩테스트' 카테고리의 다른 글
[백준] 2444번: 별 찍기 - 7 (브론즈3, Python, for문 한번 사용) (0) | 2023.08.01 |
---|---|
[백준] 25206번: 너의 평점은 (실버5, Python) (0) | 2023.07.31 |
[백준] 5597번: 과제 안 내신 분..? (브론즈5, Python) (0) | 2023.07.27 |
[백준] 10813번: 공 바꾸기 (브론즈2, Python) (0) | 2023.07.27 |
[백준] 10811번: 바구니 뒤집기 (브론즈2, Python) (0) | 2023.07.27 |