https://school.programmers.co.kr/learn/courses/30/lessons/12900
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(n):
arr = [1,2]
for _ in range(3, n+1):
arr.append((arr[-1] + arr[-2]) % 1000000007)
return arr[n-1]
규칙만 찾으면 생각보다 쉽게 풀 수 있는 문제다.
경우의 수가 [1, 2, 3, 5, 8 ...] 형태로 증가하므로 arr[-1], arr[-2]을 더한 값을 구하면 된다.
다만 효율성 테스트를 통과하지 못하는 문제가 있었는데,
return문에서 arr[n-1] % 1000000007로 계산할 시 시간초과가 발생한다.
따라서 arr에 추가할 때 % 연산을 해야 한다.
'코딩테스트 > Python' 카테고리의 다른 글
| [프로그래머스][파이썬] 숫자 변환하기 (0) | 2023.12.29 |
|---|---|
| [프로그래머스][파이썬] 땅따먹기 (0) | 2023.12.20 |
| [프로그래머스][파이썬] 주식가격 (0) | 2023.12.20 |
| [프로그래머스][파이썬] 기능개발 (1) | 2023.12.11 |
| [프로그래머스][파이썬] 캐시 (1) | 2023.12.08 |