์ฌ์ฏ์งธ ๋ ์ 'x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์' ๋ผ๋ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์์ต๋๋ค.
์ด ๊ธ์์๋ ํด๋น ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง, ๊ฒช์๋ ์ด๋ ค์, ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด ์ ์ ํ๊ณ ํ๊ธฐ ์ํด์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค ๐
๋ฌธ์ ์ค๋ช
์ด ์ ์๋ค์ ์ ๋๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด์ ์ ์ ๋ฐฐ์ด absolutes์ ์ด ์ ์๋ค์ ๋ถํธ๋ฅผ ์ฐจ๋ก๋๋ก ๋ด์ ๋ถ๋ฆฌ์ธ ๋ฐฐ์ด signs๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ค์ ์ ์๋ค์ ํฉ์ ๊ตฌํ์ฌ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ๊ธฐ ! ์ ๋๋ค.(์ ์ถ๋ ฅ์ ์)
absolutes | signs | result |
[4, 7, 12] | [true, false, true] | 9 |
[1, 2, 3] | [false, false, false] | 0 |
๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ
์์์ ์ฝ๋ฉํ ์คํธ๋ฅผ ๋ง์ด ํด๋ณธ ํ ์ด์ ๋ฐฐ์ด์ ํฉ์ reduce ๋ฉ์๋๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
absolutes์ ๋ฐฐ์ด์ ์ํํ๋ฉด์ signs์ ์ธ๋ฑ์ค์๋ ์ฐจ๋ก๋ก ์ ๊ทผํ์ฌ true์ผ ๊ฒฝ์ฐ ์์, false์ผ ๊ฒฝ์ฐ ์์๋ก ๋ฐ๊พธ๊ธฐ -number๋ฅผ ํด๋ณด์
absolutes์ ๋ฐฐ์ด์ map ๋ฉ์๋๋ก ์ํํ๊ณ index๋ ์ธ์๋ก ๋๊ฒจ์ฃผ์ด์ signs[index]์ ๊ฐ์ ํ์ธํ๋ค.
๋ด๊ฐ ํผ ๋ฐฉ๋ฒ
function solution(absolutes, signs) {
const arr = absolutes.map((num, idx) => (signs[idx] ? num : -num));
return arr.reduce((acc, cur) => acc + cur);
}
๋ฌธ์ ๋ฅผ ํผ ํ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด์๋ค ๐
absolutes๋ฅผ reduce๋ก ๋ฐ๋ก ์ ๊ทผํ์ฌ reduce์ ์ธ์์ index๋ฅผ ํ์ฉํ ๋ฐฉ๋ฒ
๋ค๋ฅธ ์ฌ๋์ ํ์ด
function solution(absolutes, signs) {
return absolutes.reduce((acc, cur, idx) => acc + (signs[idx] ? cur : -cur), 0);
}
๋ฐฐ์ด ์ ๊ณผ ๋๋ ์
reduce ๋ฉ์๋์ ๋ํด ์๊ฒ๋์๋ค. reduce์ ์ธ์๋ก ์ด๋ค ๊ฒ๋ค์ด ์ค๋์ง ์ดํด๋ณด์๋ค.
array.reduce((accumulator, currentValue, currentIndex, array) => {
// ์ํํ ์์
}, initialValue);
- accumulator(๋์ฐ๊ธฐ): ์ด์ ํจ์ ํธ์ถ์์ ๋ฐํ๋ ๊ฐ์ด ๋์ ๋๋ ๋ณ์์
๋๋ค.
- initialValue๊ฐ ์ ๊ณต๋์ง ์์ผ๋ฉด ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๊ฐ accumulator์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- currentValue: ํ์ฌ ์ฒ๋ฆฌ๋๊ณ ์๋ ๋ฐฐ์ด ์์์ ๋๋ค.
- currentIndex(์ ํ ์ฌํญ): ํ์ฌ ์ฒ๋ฆฌ๋๊ณ ์๋ ์์์ ์ธ๋ฑ์ค์ ๋๋ค.
- array(์ ํ ์ฌํญ): reduce๊ฐ ํธ์ถ๋ ๋ฐฐ์ด ์์ฒด์ ๋๋ค.
- initialValue(์ด๊ธฐ๊ฐ): accumulator์ ์ด๊ธฐ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ ๊ณตํ์ง ์์ผ๋ฉด ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ง์ ๋ฉ์๋๋ฅผ ํ์ฉํ ์ ์๋๋ก ๋ ธ๋ ฅํด ๋ณด์!!
'๐ ์คํ๋ฆฐํธ FE 9๊ธฐ > ์ฝ๋ฉ์คํฐ๋ - ์ฝํ ์์ด์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] - ์๋ ์ซ์ ๋ํ๊ธฐ, ๋ด์ (0) | 2024.10.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.0] - x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ (0) | 2024.10.07 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.0] - ๋๋ฌธ์์ ์๋ฌธ์ (0) | 2024.10.04 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.0] - ๊ฐ๋ฏธ ๊ตฐ๋จ (0) | 2024.10.04 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.0] Day 2 - ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ (0) | 2024.10.02 |