๐Ÿ’œ ์Šคํ”„๋ฆฐํŠธ FE 9๊ธฐ/์ฝ”๋”ฉ์Šคํ„ฐ๋”” - ์ฝ”ํ…Œ์˜์ด์ง€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1] - ์Œ์–‘ ๋”ํ•˜๊ธฐ

yyezzzy 2024. 10. 10. 17:39

์—ฌ์„ฏ์งธ ๋‚ ์€ '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์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด ๋ณด์ž!!