📌 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📌 풀이
- 맨 처음에는 2를 나눠서 개수를 늘리는 방식을 생각했습니다... ➡️ 매우 큰 삽질...
- ❗️그러나 이 문제의 힌트는 멀리뛰기 할 수 있는 칸의 수가 1 또는 2 라는 곳에 있습니다.
- 멀리뛰기 할 수 있는 칸 수가 정해져 있으므로
- 총 점프한 거리는 점프하고자 하는 위치에서 1칸 전인 곳과 2칸 전인 곳에서 점프하는 경우로 생각할 수 있습니다..
- 따라서 numList[i] = numList[i-1] + numList[i-2] 다음과 같은 점화식이 성립합니다.
📌 코드
class Solution {
public long solution(int n) {
long answer = 0;
long[] numList = new long[n + 1];
//초기값 세팅
numList[0] = 1;
numList[1] = 1;
for(int i = 2; i <= n; i++){
numList[i] = (numList[i-1] + numList[i-2]) % 1234567;
}
return numList[n];
}
}
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Lv1][Java] 푸드파이트 대회 (0) | 2023.02.26 |
---|---|
[프로그래머스][Lv2][Java] 폰켓몬 (0) | 2023.02.21 |
[프로그래머스][Java] 삼총사 (0) | 2023.02.16 |
[프로그래머스][Lv2][Java] 귤 고르기 (0) | 2023.02.11 |
[프로그래머스][Java] 기사단원의 무기 (0) | 2023.02.05 |