Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ ์ผ๊ฐํ ๋ณธ๋ฌธ
๐ ๋ฌธ์
์์ ๊ฐ์ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ์ด์ด์ง๋ ๊ฒฝ๋ก ์ค, ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3์์๋ ๊ทธ ์๋์นธ์ 8 ๋๋ 1๋ก๋ง ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๊ฐํ์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐฐ์ด triangle์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฑฐ์ณ๊ฐ ์ซ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
๐ก ์์ด๋์ด
1. ์ฒ์ ์์ด๋์ด๋ ๊ฐ ์ ์๋ ๊ฐ๋ค์ ๋จผ์ ๋ชจ์๋ ๋ค์์ ์ ์ผ ํฐ ๊ฐ์ผ๋ก ๊ฐ๊ธฐ ์๋๋ฐ ์๊ฐํด๋ณด๋, ๋ฐฉํฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋ํ ์ ์๋ ๊ฐ์ด ์ ํ๋์ด ์์ด์ ๊ณ์ ํฐ๊ฐ์ ๋ํด์ค๋ค๊ณ ํด์ ๊ฒฐ๊ณผ๊ฐ์ด ์ต๋๊ฐ ๋๋ ๊ฑด ์๋์๋ค.
2. ๊ฐ ์์์์ ๋์ฌ ์ ์๋ ์ ์ผ ํฐ ํฉ์ ๊ฐ์ง ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๊ทธ ๋ฐฐ์ด์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋ฝ์๋ด๋ฉด ์ต๋๊ฐ์ ์ฐพ์ ์ ์๋ค.
โ๏ธ ํ์ด
์ค๋ต ํ์ด
function solution(triangle) {
// ๋งจ ์ฒ์ ๊ฐ ๋ํ๊ณ ,
// 0 -> 0, 1 1 -> 1, 2 ์๊ธฐ์์ , +1 ๋ ์ธ๋ฑ์ค๋ก ๊ฐ ์ ์์.
// ๋ค์ ๋ฐฐ์ด์์ ์ ์ผ ํฐ ๊ฐ์ ์ฐพ๊ณ ๊ฐ ์ ์๋ ์ง ํ์ธ -> ๋ชป ๊ฐ๋ฉด ๊ทธ ๋ค์ ํฐ ๊ฐ ์ฐพ๊ธฐ X
// ๊ฐ ์ ์๋ ๊ฐ๋ค์ ๋จผ์ ๋ชจ์๋ ๋ค์์ ์ ์ผ ํฐ ๊ฐ์ผ๋ก ๊ฐ๊ธฐ
let answer = 0;
let current = 0;
answer += triangle[0][0];
for(let i=1; i<triangle.length; i++){
let access = [triangle[i][current], triangle[i][current + 1]];
let max = Math.max(...access);
let maxIndex = triangle[i].indexOf(max);
answer += max;
current = maxIndex;
}
return answer;
}
์ ๋ต ํ์ด
function solution(triangle) {
let answer = 0;
let maxList = [[triangle[0][0]]];
for(let i=1; i<triangle.length; i++){
let sumList = [];
for(let j=0; j<triangle[i].length; j++){
if(j === 0) {
sumList.push(triangle[i][j] + maxList[i-1][0]);
}
else if(j === triangle[i].length-1) {
sumList.push(triangle[i][j] + maxList[i-1][j-1]);
}
else {
if(maxList[i-1][j-1] > maxList[i-1][j]) {
sumList.push(triangle[i][j] + maxList[i-1][j-1]);
}
else {
sumList.push(triangle[i][j] + maxList[i-1][j]);
}
}
}
maxList.push(sumList);
}
return Math.max(...maxList[maxList.length-1]);
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ฐพ๊ธฐ (0) | 2023.09.20 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ธ์ด์ ํ (0) | 2023.09.13 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ (0) | 2023.08.22 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ชจ์์ฌ์ (0) | 2023.07.27 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.07.27 |