function solution(s) {
const sum = s.split(" ");
while (sum.includes("Z")) {
const zIdx = sum.findIndex((el) => el === "Z");
sum.splice(zIdx - 1, 2);
console.log(sum);
}
return sum.reduce((acc, cur) => acc + parseInt(cur), 0);
}
/*
(ํ์ด)
๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์์๋ฅผ ๋๋ ์ฃผ๊ณ ๋ฐฐ์ด์์ 'Z'๊ฐ ์์๊ฒฝ์ฐ ์๋ณธ๋ฐฐ์ด(sum)์์
์ด์ ์์ + ํ์ฌ ์์๋ฅผ ์ ๊ฑฐํด์ฃผ๋ while๋ฌธ์ ๋๋ ค์ค ํ numberํ์
์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๋จ์ ์์๋ฅผ ๋ชจ๋ ๋ํด์ค ๋ค ๋ฐํํด์ค๋ค.
for๋ฌธ์ผ๋ก ์๋ํ๋๋ฐ ๊ณ์ ์๋ณธ๋ฐฐ์ด์ ๊ฑด๋๋ฆฌ๋ index๊ฐ ์์ผ์ ๊ณ ์ํ๋ค..
*/
ํผ๋๋ฐฑ
function solution(s) {
const sum = s.split(" ");
while (true) {
const zIdx = sum.indexOf("Z");
if (zIdx === -1) break;
sum.splice(zIdx - 1, 2);
}
return sum.reduce((acc, cur) => acc + parseInt(cur), 0);
}
- ๋ด ํ์ด๋ while๋ฌธ์ ๋๋ฉด์ ๋ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง Includes๋ฅผ ํ๊ณ ๋ด๋ถ์์ findIndex๊น์ง ๋๋ฆฌ๋ ํ์์ธ๋ฐ
- while๋ฌธ์ ์กฐ๊ฑด์์ true๋ก ๋๊ณ indexOf๋ฅผ ์ด์ฉํด์ ์ฐ์ฐ ํ์๋ฅผ ์ค์ผ ์ ์๋ค. ( indexOf๋ ํด๋น ์์๊ฐ ์์ ๊ฒฝ์ฐ -1 ์ ๋ฐํ)
๋ค๋ฅธ ํ์ด
function solution(s) {
const arr = s.split(" ");
const stack = [];
let result = 0;
arr.forEach((el) => {
if (el === "Z") {
result -= stack.pop();
} else {
result += +el;
stack.push(+el);
}
});
return result;
}
- ์๋ฃ๊ตฌ์กฐ ์คํ์ ์ด์ฉํ ํ์ด๋ค. ์๊ฐ๋ณต์ก๋๋ O(n)
- ํด๋น ์์๊ฐ "Z"๊ฐ ์๋๊ฒฝ์ฐ result์ ์์๋ฅผ ๋๋ฒํ์ ์ผ๋ก ๋ณํํ์ฌ ๋น ๋ฐฐ์ด๊ณผ result์ ๋ฃ์ด์ค๋ค.
- ํน์ ๋ค์ ์์๊ฐ "Z"์ผ ๊ฒฝ์ฐ ๋ฐ๋ก ์ด์ ์ ๋น ๋ฐฐ์ด์ ๋ค์ด๊ฐ๋ ์์๋ฅผ pop์ผ๋ก ์ ๊ฑฐํ๋ฉด์ ๊ทธ ๊ฐ๋งํผ result์ ๊ฐ์ ๋นผ์ฃผ๋ฉด ๋๋ค. ์ฒด๊ณ์ ์ด๊ณ ํจ์จ๊น์ง ์ข์๊ฒ ๊ฐ๋ค.๐
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ง๋ฃ์์ ์ ํ๊ธฐ (0) | 2022.10.19 |
---|---|
๋ค์์ ์ฌ ์ซ์ (0) | 2022.10.19 |
์์ธ์๋ถํด (0) | 2022.10.19 |
๊ตฌ์ฌ์ ๋๋๋ ๊ฒฝ์ฐ์ ์ (0) | 2022.10.19 |
๋ฌธ์์ด ๊ณ์ฐํ๊ธฐ (0) | 2022.10.19 |