-
[C++] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ ์ผ๊ฐํ์ฝ๋ฉํ ์คํธ/์ฝ๋ฉํ ์คํธ ์ฐ์ต 2020. 10. 28. 09:31728x90
(20๋ถ) ๋๋ฌด ์น์ ํ๊ฒ dp๋ก ํ๋ผ๊ณ ๋ง๋ค์ด๋ ผ ๋ฌธ์ . ์์์๋ถํฐ ์ต๋๊ฐ์ ๊ณ์ฐํด์ ์ ์ฅํ๋ฉด์ ๋ด๋ ค์ค๋ฉด ์ต๋๊ฐ์ ์ ์ ์๋ค.
#include <string> #include <vector> #include <algorithm> using namespace std; int solution(vector<vector<int>> triangle) { int triSize = triangle.size(); for (int i = 1; i < triSize; i++) { int floorSize = triangle[i].size(); for (int j = 0; j < floorSize; j++) { if (j == 0) { // ์ผ์ชฝ ๋ triangle[i][j] += triangle[i - 1][j]; } else if (j == floorSize - 1) { // ์ค๋ฅธ์ชฝ ๋ triangle[i][j] += triangle[i - 1][j - 1]; } else { triangle[i][j] += max(triangle[i - 1][j - 1], triangle[i - 1][j]); } } } int maxNum = 0; for (int i = 0; i < triangle[triSize - 1].size(); i++) { if (maxNum < triangle[triSize - 1][i]) { maxNum = triangle[triSize - 1][i]; } } return maxNum; }
728x90'์ฝ๋ฉํ ์คํธ > ์ฝ๋ฉํ ์คํธ ์ฐ์ต' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ