โ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/389478
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๐จ๋ฌธ์ ํ์ด
์์๊ฐ ์์ฌ์๋ ๊ตฌ์กฐ์ ๋น์ทํ 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๋ฌธ์ ๋ฅผ ํ ์ ์์๋ค. ( ์ฃผ์ด์ง ์กฐ๊ฑด์ ๊ณ ๋ คํ๋ฉด 2์ฐจ์๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ํ์ฌ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์ง ์์๊ฑฐ๋ผ๊ณ ์๊ฐ๋์๋ค. ) ์๋ฅผ๋ค์ด n=12 w=5 num=9 ์ด๋ฉด ์๋์ ๊ฐ์ 2์ฐจ์๋ฐฐ์ด์ ๋ง๋ค์ด์ column index๊ฐ 1์ธ 2,9,12 ๋ฅผ ์ํํ๋ฉด์ ๊ฐ์ ๊ตฌํ ์ ์์๋ค.
function solution(n, w, num) {
let map = [];
let temp = [];
let direction = true;
for (let i = 1; i <= n; ++i) {
if (direction) {
temp.push(i);
} else {
temp.unshift(i);
}
if (i === n) {
map.push(temp);
break;
}
if (parseInt(i % w) === 0) {
map.push(temp);
temp = [];
direction = !direction;
}
}
if (map[map.length - 1].length !== w) {
let itemCnt = map[map.length - 1].length;
if (direction) {
let newLine = map[map.length - 1].concat(Array(w - itemCnt).fill(0));
map[map.length - 1] = newLine;
} else {
let newLine = Array(w - itemCnt)
.fill(0)
.concat([...map[map.length - 1]]);
map[map.length - 1] = newLine;
}
}
let answer = 0;
let row = 0,
column = 0;
for (let r = 0; r < map.length; ++r) {
for (let c = 0; c < w; ++c) {
if (map[r][c] === num) {
row = r;
column = c;
}
}
}
while (1) {
if (map[row] && map[row][column]) {
++answer;
++row;
} else {
break;
}
}
return answer;
}
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ์ ์ฐ๊ทผ๋ฌด์ (0) | 2025.02.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ์์ ๋ฒ์ฃ (0) | 2025.02.21 |
๋ฐฑ์ค[JS] > 1920๋ฒ ์ ์ฐพ๊ธฐ (0) | 2025.02.19 |
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ์ง๊ฒ์ฐจ์ ํฌ๋ ์ธ (0) | 2025.02.16 |
ํ๋ก๊ทธ๋๋จธ[JS] > ์๋ฒ ์ฆ์ค ํ์ (1) | 2025.02.16 |