๐ ๋ฌธ์
- ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes,
- ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
- ์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํด์ค๋ค.
โจ๏ธ ์ ์ถ๋ ฅ ์์

๐โโ๏ธ ๋ด๊ฐ ํผ ๋ฐฉ์
- ๋ฌธ์ ์์ฒด๋ ์ดํด๋ฅผ ๋ชปํ์์..
- reduce ์ดํดํ๋๋ผ ํ๋ค์๋ค
function solution(absolutes, signs) {
// returnํ answer ๊ฐ ์ ์ธ
var answer = 0;
// absolutes, signs ๊ฐ๊ฐ ์ฐ์ฐ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ๊ฐ ๋ฃ์ด ์ค ๋ฐฐ์ด ์ ์ธ
let newArr = [];
// absolutes์ signs์ ๊ธธ์ด๋ ํญ์ ๋์ผ
// ๋ฐ๋ณต๋ฌธ ๊ฐ์ ์ธ์๋ก ๋๋ ค๋ ๋ฌด๋ฐฉ
for(let i = 0; i < absolutes.length; i++) {
// signs์ i๋ฒ์งธ ๋ฐฐ์ด์ด true๋ฉด,
if(signs[i]) {
// absolutes์ i๋ฒ์งธ ๋ฐฐ์ด์ ๊ฐ์ ๊ทธ๋๋ก newArr์ ๋ฃ์ด์ฃผ๊ณ ,
newArr.push(absolutes[i]);
// signs์ i๋ฒ์งธ ๋ฐฐ์ด์ด false๋ฉด,
} else {
// absolutes์ i๋ฒ์งธ ๋ฐฐ์ด์ ๊ฐdp -1 ๊ณฑํด์ newArr์ ๋ฃ์ด์ค๋ค.
newArr.push(absolutes[i] * -1);
}
}
// newArr์ ๋ค์ด์๋ ์ ์์ ๊ฐ์ ๊ตฌํด์ผ ํ๋
// ๋์ฐ๊ธฐ ๋ฉ์๋ ์ฌ์ฉ
// acc -> ๋์ ๋์ด์ง ๊ฐ
// curr -> ์ฒซ๋ฒ์งธ ๋ฐฐ์ด๊ฐ, ๋๋ฒ์งธ ๋ฐฐ์ด๊ฐ, ... ๊ฐ๊ฐ์ ๋ฐฐ์ด๊ฐ ๋๋ค.
// function๊ณผ ๊ฐ์ด ์ด๊ธฐ๊ฐ 0 ์ฃผ๊ธฐ
answer = newArr.reduce(function (acc, curr) {
// ์ด๊ธฐ๊ฐ = ์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ
// ์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ = (์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ) + ๋ฐฐ์ด์ ๋๋ฒ์งธ ๊ฐ
// ex) [4, -7, 12]
// --> 0 = 0 + 4
// -> 4 = 4 + (-7)
// -> -3 = -3 + 12
// ---> 9
acc = acc + curr;
return acc;
}, 0);
console.log(newArr)
return answer;
}
๐ ๋ฌธ์
- ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes,
- ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
- ์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํด์ค๋ค.
โจ๏ธ ์ ์ถ๋ ฅ ์์

๐โโ๏ธ ๋ด๊ฐ ํผ ๋ฐฉ์
- ๋ฌธ์ ์์ฒด๋ ์ดํด๋ฅผ ๋ชปํ์์..
- reduce ์ดํดํ๋๋ผ ํ๋ค์๋ค
function solution(absolutes, signs) {
// returnํ answer ๊ฐ ์ ์ธ
var answer = 0;
// absolutes, signs ๊ฐ๊ฐ ์ฐ์ฐ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ ๊ฐ ๋ฃ์ด ์ค ๋ฐฐ์ด ์ ์ธ
let newArr = [];
// absolutes์ signs์ ๊ธธ์ด๋ ํญ์ ๋์ผ
// ๋ฐ๋ณต๋ฌธ ๊ฐ์ ์ธ์๋ก ๋๋ ค๋ ๋ฌด๋ฐฉ
for(let i = 0; i < absolutes.length; i++) {
// signs์ i๋ฒ์งธ ๋ฐฐ์ด์ด true๋ฉด,
if(signs[i]) {
// absolutes์ i๋ฒ์งธ ๋ฐฐ์ด์ ๊ฐ์ ๊ทธ๋๋ก newArr์ ๋ฃ์ด์ฃผ๊ณ ,
newArr.push(absolutes[i]);
// signs์ i๋ฒ์งธ ๋ฐฐ์ด์ด false๋ฉด,
} else {
// absolutes์ i๋ฒ์งธ ๋ฐฐ์ด์ ๊ฐdp -1 ๊ณฑํด์ newArr์ ๋ฃ์ด์ค๋ค.
newArr.push(absolutes[i] * -1);
}
}
// newArr์ ๋ค์ด์๋ ์ ์์ ๊ฐ์ ๊ตฌํด์ผ ํ๋
// ๋์ฐ๊ธฐ ๋ฉ์๋ ์ฌ์ฉ
// acc -> ๋์ ๋์ด์ง ๊ฐ
// curr -> ์ฒซ๋ฒ์งธ ๋ฐฐ์ด๊ฐ, ๋๋ฒ์งธ ๋ฐฐ์ด๊ฐ, ... ๊ฐ๊ฐ์ ๋ฐฐ์ด๊ฐ ๋๋ค.
// function๊ณผ ๊ฐ์ด ์ด๊ธฐ๊ฐ 0 ์ฃผ๊ธฐ
answer = newArr.reduce(function (acc, curr) {
// ์ด๊ธฐ๊ฐ = ์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ
// ์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ = (์ด๊ธฐ๊ฐ + ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ) + ๋ฐฐ์ด์ ๋๋ฒ์งธ ๊ฐ
// ex) [4, -7, 12]
// --> 0 = 0 + 4
// -> 4 = 4 + (-7)
// -> -3 = -3 + 12
// ---> 9
acc = acc + curr;
return acc;
}, 0);
console.log(newArr)
return answer;
}