๋ฌธ์
N*N ๊ฒฉ์ํ์ด ์ฃผ์ด์ง๋ฉด ๊ฐ ํ์ ํฉ, ๊ฐ ์ด์ ํฉ, ๋ ๋๊ฐ์ ์ ํฉ ์ค ๊ฐ์ฅ ํฐ ํฉ์ ์ถ๋ ฅํ์ธ์.
์ ๋ ฅ์์ |
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19
์ถ๋ ฅ์์ |
155
ํ์ด
1. ๊ฐ ํ์ ํฉ, ๊ฐ ์ด์ ํฉ ๊ตฌํ๋ค. (ํฉ์ ๊ตฌํด์ผํ ๋๋ sum ๋ณ์ ๋ง๋ค์ด์ฃผ์ด์ผํจ. ์ฌ๊ธฐ์๋ ํ์ ํฉ, ์ด์ ํฉ ํ์ํด์ 2๊ฐ ์ ์ธ)
2. ๊ฐ ๋๊ฐ์ ์ ํฉ ๊ตฌํ๋ค.
3. ๋น๊ตํด์ ์ต๋๊ฐ์ ๊ตฌํด์ answer์ ๋ฃ๋๋ค.
4. answer ์ถ๋ ฅ
function solution(arr){
let answer = Number.MIN_SAFE_INTEGER;
// 1. answer๋ ์ต๋๊ฐ์ ์ฐพ์์ผํ๋๊น ์ต์๊ฐ์ผ๋ก ์ด๊ธฐํ ํด๋๋๋ค.
let n = arr.length;
let sum1 = 0;
let sum2 = 0;
// ํ์ ํฉ์ sum1๋ก ์ ์ฅ
// ์ด์ ํฉ์ sum2๋ก ์ ์ฅ
// ํ ํ์, ์ด ํ์์ ์ด์คfor๋ฌธ์ผ๋ก
for(let i = 0; i < n; i++){
sum1 = 0;
sum2 = 0;
// for๋ฌธ์ด ํ ๋ฒ ๋๋ ๋๋ง๋ค ๋งค๋ฒ ์ด๊ธฐํ๋ฅผ ์์ผ์ค์ผํ๋ค.
for(let j = 0; j < n; j++){
sum1 += arr[i][j]; // i๊ฐ ๋๊ณ j ๊ณ ์ (i๊ธฐ์ค j์ ๋ชจ๋ ๊ฐ ๋ํ์ฌ ๋์ )
sum2 += arr[j][i]; // j๊ฐ ๋๊ณ i ๊ณ ์ (j๊ธฐ์ค i์ ๋ชจ๋ ๊ฐ ๋ํ์ฌ ๋์ )
// ํ์ด ๋๊ณ ์ด์ด ๊ณ ์ ๋๋ค
}
answer = Math.max(answer, sum1, sum2);
// ์ต๋๊ฐ ๊ตฌํ๋ ๋ฉ์๋
}
// ์ด์ ๋๊ฐ์ ์ ํฉ ๊ตฌํ๋ for๋ฌธ ์์ฑ
// ์๋ก ๋๊ฐ์ ํฉ ๊ตฌํด์ผํด์ ์ด๊ธฐํ ํด์ฃผ์ด์ผํ๋ค.
sum1 = 0;
sum2 = 0;
for(let i = 0; i < n; i++){
sum1 = arr[i][i]; // ๋๊ฐ์ ์ธ๋ฑ์ค์ ํ๊ณผ ์ด
sum2 = arr[i][n-i-1]; // sum1๊ณผ ๋์นญ์ธ ๊ฐ์ ๊ตฌํด์ฃผ์ด์ผํ๋ค.
}
answer = Math.max(answer, sum1, sum2);
return answer;
}
llet arr = [[10, 13, 10, 12, 15],
[12, 39, 30, 23, 11],
[11, 25, 50, 53, 15],
[19, 27, 29, 37, 27],
[19, 13, 30, 13, 19]];
console.log(solution(arr));
ํ๊ณผ ์ด์ ๊ฐ์ด ํ์ํด์ผํ๋ฏ๋ก ์ด์คfor๋ฌธ์ ์ฌ์ฉํด์ค๋ค.
ํ -> i / ์ด -> j
function solution(arr){
let answer;
let n = arr.length;
let sum1 = 0;
let sum2 = 0;
for(let i = 0; i < n; i++){
sum1 = 0;
sum2 = 0;
for(let j = 0; j < n; j++){
sum1 += arr[i][j];
sum2 += arr[j][i];
}
answer = Math.max(sum1, sum2);
}
sum1 = 0;
sum2 = 0;
for(let i = 0; i < n; i++){
sum1 += arr[i][i];
sum2 += arr[i][n-i-1];
}
answer = Math.max(sum1, sum2);
return answer;
}
let arr = [[10, 13, 10, 12, 15],
[12, 39, 30, 23, 11],
[11, 25, 50, 53, 15],
[19, 27, 29, 37, 27],
[19, 13, 30, 13, 19]];
console.log(solution(arr));
answer์ ๊ฐ์ฅ ์์ ์ ์๋ฅผ ์จ์ฃผ์ง ์๊ณ ๋ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
์ฌ๊ธฐ์ ๋ ์์๋ณด์์ผํ ๊ฐ๋ !
for๋ฌธ์ด ๋๋๋ง๋ค sum ๋ณ์๋ฅผ ์ด๊ธฐํํด์ฃผ๋ ๊ฒ.
์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ ๊ฐ๋ ์ ๋ฆฌํ ๊ฒ
์๊ฒ๋ ๊ฐ๋
2์ฐจ์ ๋ฐฐ์ด
๋ฐฐ์ด์์ ๋ ๋ค๋ฅธ ๋ฐฐ์ด์ด ์๋ ๊ฒ
2์ฐจ์ ๋ฐฐ์ด์ ํ๊ณผ ์ด์ด ์๋ค.
ํ๊ณผ ์ด์ด ์์๋, ํ๋ถํฐ ์จ์ค๋ค.
arr[ํ][์ด]
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ฌธ ๋ฌธ์์ด(๋ฌธ์์ด ํ์) (0) | 2021.05.03 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ๋ด์ฐ๋ฆฌ (2์ฐจ์ ๋ฐฐ์ด ๋ค๋ฐฉํฅ ํ์) (0) | 2021.05.02 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ฑ์๊ตฌํ๊ธฐ (์ด์คfor๋ฌธ, Array.from) (0) | 2021.04.27 |
JS์๊ณ ๋ฆฌ์ฆ | ์ ์๊ณ์ฐ (0) | 2021.04.26 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ ๋ฐ์ ๋ณด (0) | 2021.04.25 |