[프로그래머스][LV.2] 멀리 뛰기 | python3
2025. 2. 5. 17:27ㆍ프로그래머스/LV.2
문제 링크: 멀리 뛰기
문제 설명
문제 설명
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.
제한사항
- n은 1 이상, 2000 이하인 정수입니다.
문제 풀이
n=1 일 때 1
n=2 일 때 2
n=3 일 때 3
n=4 일 떼 5
n=5 일 때 8
n=6 일 때 13
'
'
'
이렇게 f(x)=f(x-1)+f(x-2)을 만족한다.
저번에 풀었던 문제를 더듬으며 풀어봤다.
n+1 길이의 리스트를 만들어서 인덱스 번호 = n 이라고 생각.
for문을 이용하여 n번째 원소값에 인덱스 n-1의 원소값+인덱스 n-2의 원소값을 더해서 넣어준다.
내코드
def solution(n):
if n==1:
return 1
elif n==2:
return 2
num=[0 for _ in range(n+1)]
num[1],num[2]=1,2
for i in range(3,n+1):
num[i]=(num[i-1]+num[i-2])%1234567
answer=num[n]
return answer
더보기
다른사람풀이
def jumpCase(num):
a, b = 1, 2
for i in range(2,num):
a, b = b, a+b
return b
전에도 이런 류의 코드를 보고 센세이션하다고 느겼는데....다음엔 꼭 써먹어봐야지!!!!!
def solution(n):
temp = dict()
temp[1] = 1
temp[2] = 2
for i in range(3, n+1):
temp[i] = temp[i-1] + temp[i-2]
return temp[n] % 1234567
딕셔너리를 활용한 풀이방법
'프로그래머스 > LV.2' 카테고리의 다른 글
[프로그래머스][LV.2] 땅따먹기 | python3 (0) | 2025.02.06 |
---|---|
[프로그래머스][LV.2] 3 x n 타일링 | python3 (0) | 2025.02.06 |
[프로그래머스][LV.2] 올바른 괄호 | python3 (0) | 2025.02.05 |
[프로그래머스][LV.2] 124 나라의 숫자 | python3 (0) | 2025.02.04 |
[프로그래머스][LV.2] 2 x n 타일링 | python3 (0) | 2025.02.04 |