728x90
    
    
  반응형
    
    
    
  

https://school.programmers.co.kr/learn/courses/30/lessons/12914
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이번 포스팅은 멀리 뛰기 입니다.
이 문제를 풀려면 bottom-up 방식의 동적 프로그래밍(Dynamic Programming)을 알면 좋습니다.
대표적으로 bottom-up 방식은 피보나치 수열이 있습니다.
a1 = 1
a2 = 1
a3 = a1 + a2 = 2
a4 = a2 + a3 = 3
n ≥ 3 일 때,
An = An-2 + An-1 이 성립됩니다.
이렇게 피보나치 수열을 쓸 줄 알면 됩니다.
다만 문제에서 보면 조건이 있는데,
1234567을 나눈 나머지를 수열의 n번째 항의 값을 넣어줘야합니다.
package farJump;
/*
 * 	https://school.programmers.co.kr/learn/courses/30/lessons/12914
 * 
 *  프로그래머스 멀리 뛰기
 * */
public class FarJump {
	public static void main(String[] args) {
		Solution s = new Solution();
		System.out.println(s.solution(4));
		System.out.println(s.solution(5));
		System.out.println(s.solution(11));
	}
}
class Solution {
    public long solution(int n) {
        if(n <= 3) return (long)n;
        
        long[] arr = new long[n+1];
        for(int i = 0; i < 4; i++) {
            arr[i] = i;
        }
        
        int cnt = 3;
        while(cnt <= n) {
            arr[cnt] = (arr[cnt - 1] + arr[cnt - 2]) %1234567;
            cnt++;
        }
        
        return arr[n];
    }
}
위의 소스를 실행시켜보면
5 
8 
144
의 결과를 확인할 수 있습니다.
728x90
    
    
  반응형
    
    
    
  '코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/MySQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.06.09 | 
|---|---|
| [프로그래머스/MySQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.06.09 | 
| [프로그래머스/java] JadenCase 문자열 만들기 (0) | 2022.09.10 | 
| [프로그래머스/java] 거리두기 확인하기 - 카카오 기출 (0) | 2022.08.28 | 
| [프로그래머스/java] 행렬 테두리 회전하기 (0) | 2022.08.24 | 
 
										
									 
										
									 
										
									 
										
									
댓글