๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฌธ์ œํ’€๊ธฐ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‚ด์ 

๋ฌธ์ œ) ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋‘ 1์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด a, b๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. a์™€ b์˜ ๋‚ด์ ์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.์ด๋•Œ, a์™€ b์˜ ๋‚ด์ ์€ a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] ์ž…๋‹ˆ๋‹ค. (n์€ a, b์˜ ๊ธธ์ด)

 

์ œํ•œ์‚ฌํ•ญ)

  • a, b์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • a, b์˜ ๋ชจ๋“  ์ˆ˜๋Š” -1,000 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

*์ž…์ถœ๋ ฅ ์˜ˆ:

a b result
[1,2,3,4] [-3,-1,0,2] 3
[-1,0,1] [1,0,-1] -2

 

 

  ๋‚ด ํ’€์ด   

function solution(a, b) {
    let answer = null;
    for (let i = 0; i < a.length; i++) {
        answer+=(a[i] * b[i]);
    }
    return answer;
}

 

 

 

   ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด   

function solution(a, b) {
    return a.reduce((acc, _, i) => acc += a[i] * b[i], 0);
}

 

  Review  

๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด ์ค‘ ์ƒ์œ„ ํ’€์ด ๋Œ€๋ถ€๋ถ„ ์œ„์™€ ๊ฐ™์ด reduce ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•œ ํ’€์ด์˜€๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— reduce ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์•˜๋Š”๋ฐ reduce ๋ฉ”์†Œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๋ชจ๋กœ ์œ ์šฉํ•จ์„ ๊นจ๋‹ฌ์•˜๋‹ค.