Lv 1. ๋‚ด์ 

๋ฐ•ํ•˜๋ฆฐยท2021๋…„ 6์›” 6์ผ
0

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋ชฉ๋ก ๋ณด๊ธฐ
20/42

๐Ÿ“š ๋ฌธ์ œ

๋‚ด์ 
https://programmers.co.kr/learn/courses/30/lessons/70128

๐Ÿ’ก ์ ‘๊ทผ

๋‘ ๋ฐฐ์—ด์˜ ๊ฐ ์ธ๋ฑ์Šค๋ฅผ ๊ณฑํ•ด์„œ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋œ๋‹ค.
for๋ฌธ์œผ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜ reduce๋กœ ํ’€์ด๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

โŒจ๏ธ ์ฝ”๋“œ

function solution(a,b){
    return a.reduce((acc,cur,i) => acc + cur*b[i],0) 
} // ์ดˆ๊ธฐ๊ฐ’ 0 ์„ ์ธ์ž๋กœ ์ฃผ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ๊ฐ’ ์ง€์ • 

โœ… ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ

Array.reduce()

  • ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ๋ฆฌ๋“€์„œํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜
  • syntax
	arr.reduce(callback[, initialValue])
  • ๋งค๊ฐœ๋ณ€์ˆ˜

    • callback ํ•จ์ˆ˜ ์ธ์ž

      • accumulator : ๋ˆ„์‚ฐ๊ธฐaccmulator๋Š” ์ฝœ๋ฐฑ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ˆ„์ . ์ฝœ๋ฐฑ์˜ ์ด์ „ ๋ฐ˜ํ™˜๊ฐ’ ๋˜๋Š”, ์ฝœ๋ฐฑ์˜ ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ถœ์ด๋ฉด์„œ initialValue๋ฅผ ์ œ๊ณตํ•œ ๊ฒฝ์šฐ์—๋Š” initialValue์˜ ๊ฐ’
      • currentValue : ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ
      • currentIndex(Optional) : ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค. initialValue๋ฅผ ์ œ๊ณตํ•œ ๊ฒฝ์šฐ 0, ์•„๋‹ˆ๋ฉด 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
      • array(Optional) : reduce()๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด
    • initialValue(Optional) : callback์˜ ์ตœ์ดˆ ํ˜ธ์ถœ์—์„œ ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜์— ์ œ๊ณตํ•˜๋Š” ๊ฐ’. ์ดˆ๊ธฐ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋นˆ ๋ฐฐ์—ด์—์„œ ์ดˆ๊ธฐ๊ฐ’ ์—†์ด reduce()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ

    • ๋ฐ˜ํ™˜ ๊ฐ’ : ๋ˆ„์  ๊ณ„์‚ฐ์˜ ๊ฒฐ๊ณผ ๊ฐ’

    • reduceํ•จ์ˆ˜์˜ ์ž‘๋™ ๋ฐฉ์‹ : MDN - Array.prototype.reduce()

๐Ÿ“ ๋ฆฌ๋ทฐ

reduce ํ•จ์ˆ˜์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ฟ

profile
๊นƒํ—ˆ๋ธŒ: https://github.com/khakaa

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด