💡Problem Solving/Programmers

[프로그래머스] 멀리 뛰기 (Java)

gom20 2021. 10. 29. 22:40

문제

https://programmers.co.kr/learn/courses/30/lessons/12914#

 

코딩테스트 연습 - 멀리 뛰기

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2

programmers.co.kr

 

풀이

완전 탐색으로 풀면 시간 초과가 발생한다. 

가만 보니 2 x n 타일링 문제와 동일하다.

아래 문제에서 세로 타일 한개를 1칸, 가로타일 두 개를 2칸으로 해당 문제에 대입할 수 있다.

DP문제로 점화식을 이용해서 풀 수 있다.

2021.10.29 - [Alogirthm/Programmers] - [프로그래머스] 2 x n 타일링 (Java)

 

[프로그래머스] 2 x n 타일링 (Java)

문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길..

gom20.tistory.com

 

소스코드

class Solution {    
    public long solution(int n) {
        int[] dp = new int[n+2];
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i <= n; i++){
            dp[i] = (dp[i-1] + dp[i-2])%1234567;
        }
        return dp[n];
    }
}