티스토리 뷰

문제 링크입니다 : https://programmers.co.kr/learn/courses/30/lessons/43105

 

코딩테스트 연습 - 정수 삼각형

[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30

programmers.co.kr

 

동적계획법 문제이다!

 

 

입력에 triangle[0]에 원소 1개라고 나와있는데; 실제로는 데이터가 없는 위치에는 0으로 채워진 형식이다;;

 

문제 제대로 만들지...

 

 

 

 

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

int solution(vector<vector<int>> triangle) {
    int answer = 0;
    
    vector<int> prev;
    vector<int> cur = triangle[0];
    
    for(int i = 1; i < triangle.size(); i++) {
        prev = cur;
        cur.assign(prev.size(), 0);
        
        
        cur[0] = triangle[i][0] + prev[0];
        
        for(int j = 1; j < cur.size() - 1; j++) {
            cur[j] = triangle[i][j] + max(prev[j - 1], prev[j]);
        }
        
        cur.back() = triangle[i].back() + prev.back();
        
    }
    
    for(const auto& el : cur) {
        if(el > answer) {
            answer = el;
        }
    }
    
    return answer;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함