https://school.programmers.co.kr/learn/courses/30/lessons/43105
문제 해결 과정
착안
동적계획법(dynamic programming)을 통해 가장 아래 층의 숫자들부터 인접한 두 개씩 비교하여 위의 숫자로 더해나가는 방식으로 문제를 해결하고자 하였다.
구현
[스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~
더보기
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> triangle)
{
for (int i = triangle.size() - 1; i > 0; i--)
for (int j = 0; j < triangle[i].size() - 1; j++)
triangle[i - 1][j] += triangle[i][j] > triangle[i][j + 1] ? triangle[i][j] : triangle[i][j + 1];
return triangle[0][0];
}
실행 결과
'C++ 코딩 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Programmers] 다음 큰 숫자 (0) | 2023.08.15 |
---|---|
[Programmers] 숫자의 표현 (0) | 2023.08.15 |
[Programmers] 이진 변환 반복하기 (0) | 2023.07.30 |
[Programmers] 최솟값 만들기 (0) | 2023.07.30 |
[Programmers] JadenCase 문자열 만들기 (0) | 2023.07.28 |
댓글