새소식

코딩테스트/프로그래머스

[C++] 멀리 뛰기

  • -

[문제]

코딩테스트 연습 - 멀리 뛰기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제 풀이]

2칸 혹은 1칸을 움직일 수 있으니 간단하게 생각해서 3칸을 움직일 수 있는 경우는 1칸째에서 2칸을 한번에 움직이는 경우 + 2칸째에서 1칸을 추가로 오는 경우이다.

즉, dp[i] = dp[i - 1] + dp[i - 2] 라는 점화식이 완성이 되니 이를 이용해서 풀자.

[회고]

이전엔 DP에 대한 이해도가 부족해서 어떻게 접근하는지 헷갈렸었는데 이제는 확실히 계단 뛰어오르기 정도는 익숙해진 것 같다.

뿌듯!

[코드]

#include <string>
#include <vector>

using namespace std;

int dp[2002];

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

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[C++] 미로 탈출  (0) 2023.04.05
[C++] 과제 진행하기  (0) 2023.04.05
[C++] 점프와 순간 이동  (0) 2023.04.04
[C++] 가장 긴 팰린드롬  (0) 2023.04.02
[C++] 바탕화면 정리  (0) 2023.03.31
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.