https://www.acmicpc.net/step/1932
let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')
let N = input.shift();
let inputArr = [];
input.map((el)=>{
inputArr.push(el.split(' ').map(Number))
})
for(let i = 1; i<N; i++){
for(let j = 0; j<inputArr[i].length; j++){
if(j==0) inputArr[i][j] = inputArr[i][j]+inputArr[i-1][0] // 1
else if(j+1==inputArr[i].length) inputArr[i][j] = inputArr[i] [j]+inputArr[i-1][j-1] // 2
else inputArr[i][j] = inputArr[i][j]+Math.max(inputArr[i-1][j],inputArr[i-1][j-1]) // 3
}
}
console.log(Math.max(...inputArr[N-1]))
inputArr
에 받아온input
을 다 넣어서 만들어주고inputArr
의 두번째부터 돌아가면서 수를 더해주는 형식으로 진행한다. 먼저1
번에서 배열의 가장 첫번째 수라면 윗줄에 있는 가장 첫번째 수와 더해주고2
번에서는 가장 끝줄에 있는 수는 윗줄의-1
번째 인덱스를 더해준다. 그리고3
번에서는 사잇수에서 고를수 있는 수 중 더 큰 값으로 바꿔준다.
마지막줄inputArr[N-1]
에서 가장 큰 최댓값을 구해주면 완료