coding test - C++/기본기문제
[C++] 스티커문제 - dp
sillon
2026. 10. 3. 19:17
728x90
반응형
//스티커가 1개일때
// dp문제는 1개 / 2개 일때 먼저 출력할 수 있으면 출력하자

#include <iostream>
#include <vector>
using namespace std;
int solution(vector<int> sticker)
{
int answer =0;
int n = sticker.size();
vector<int> dp1(n,0);
vector<int> dp2(n,0);
// dp1 14부터
for (int i = 1; i < n; i ++){
dp1[i] = sticker[i-1];
}
for (int i = 1; i < n; i ++){
dp2[i] = sticker[i];
}
for(int i = 2; i < dp1.size(); i++){
dp1[i] = max(dp1[i-1],dp1[i-2] + dp1[i]);
}
for(int i = 2; i < dp2.size(); i++){
dp2[i] = max(dp2[i-1],dp2[i-2] + dp2[i]);
}
answer = max(dp1[dp1.size()-1],dp2[dp2.size()-1]);
//스티커가 1개일때
// dp문제는 1개 / 2개 일때 먼저 출력할 수 있으면 출력하자
if (n == 1){
return sticker[0];
}
return answer;
}
로직 참고
https://sillon-coding.tistory.com/424
Programmers / 스티커 모으기(2) / Python 파이썬
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 스티커 모으기(2) (3단계) - 동적 계획법 문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12971#qna 프로그래머스 코드 중심의 개발자 채
sillon-coding.tistory.com
728x90
반응형