728x90
์ด๊ฑฐ ํ๊ธด ๋๋ฆ ๋นจ๋ฆฌ ํ์๋๋ฐ,
์ฝ๋ ์ ๋ฆฌํ๋ ๊ฑธ ๋ฐฐ์ ๋ค.
* 2๊ฐ ์ด์ ๊ฐ์ง๊ณ ์๋ ์ -> ์ค๋ฅธ์ชฝ์ผ๋ก ์ ๋ฌ,
* 2๊ฐ ์ด์ ๊ฐ์ง๊ณ ์๋ ์ <- ์ผ์ชฝ์ผ๋ก ์ ๋ฌ
์ด ๋๊ฐ์ง๊ฐ ์์๊ฐ ๋ฐ๋๋ฉด ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ๋ฐ๊พผ ๊ฒฐ๊ณผ์ ์๋ฅผ ๋น๊ตํด์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ค.
function solution(n, lost, reserve) {
const swts = Array.from({ length: n }, (v, i) => lost.includes(i + 1) ? 0 : 1).map((v, i) => reserve.includes(i + 1) ? v += 1 : v)
const upper = (swts) => {
for (let i = 0; i < swts.length; i++) {
if (swts[i] === 0&& swts[i + 1] > 1) {
swts[i] += 1;
swts[i + 1] -= 1;
}
}
return swts;
}
const lower = (swts) => {
for (let i = 1; i < swts.length; i++) {
if (swts[i] === 0&&swts[i - 1] > 1) {
swts[i] += 1;
swts[i - 1] -= 1;
}
}
return swts;
}
const upperNumber = (swts) => lower(upper(swts)).filter(v => v !== 0).length;
const lowerNumber = (swts) => upper(lower(swts)).filter(v => v !== 0).length;
return Math.max(upperNumber([...swts]), lowerNumber([...swts]))
}
์ค๋๋ ๋น๋์ข๊ฐ ๋์์ฃผ์ จ๋ค. ํ ์
function solution(n, lost, reserve) {
let students = Array(n).fill(1);
// ์ฒด์ก๋ณต์ ์์ด๋ฒ๋ฆฐ ํ์ ์ฒ๋ฆฌ
lost.forEach(v => students[v-1]--);
// ์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ง๊ณ ์๋ ํ์ ์ฒ๋ฆฌ
reserve.forEach(v => students[v-1]++);
students.forEach((v, i) => {
// ์ด ํ์์ ๋ฐ๋ก ์์ ์ฌ๋ณ์ ์ฒด์ก๋ณต์ ๊ฐ์ง ํ์์ด ์์ผ๋ฉด ์ธ๋น์ง ํฉ๋๋ค.
if (!v && students[i-1] === 2) {
students[i-1]--;
students[i]++;
}
else if (!v && students[i+1] === 2) {
// ์ด ํ์์ ๋ฐ๋ก ๋ค์ ์ฌ๋ณ์ ์ฒด์ก๋ณต์ ๊ฐ์ง ํ์์ด ์์ผ๋ฉด ์ธ๋น์ง ํฉ๋๋ค.
students[i+1]--;
students[i]++;
}
});
return students.filter(v => v > 0).length;
}
๋น๋๋ ๋ ์๋น์ง ํ๊ณ ์ถ๋ค...
728x90
๋ฐ์ํ
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2023.07.17 |
---|---|
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ผ์ชฝ ์ค๋ฅธ์ชฝ (0) | 2023.07.16 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์น์์ด(2) (0) | 2023.07.13 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ์ง๊ฟ (0) | 2023.07.11 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋คํธ ๊ฒ์ (0) | 2023.07.06 |