2023. 7. 26. 19:06ใStudy_Develop/์๊ณ ๋ฆฌ์ฆ | ์ฝ๋ฉํ ์คํธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ฑ์ฐจ์์ด์ ํน์ ํ ํญ๋ง ๋ํ๊ธฐ - js
๋ฌธ์
๋ ์ ์ a, d์ ๊ธธ์ด๊ฐ n์ธ boolean ๋ฐฐ์ด included๊ฐ ์ฃผ์ด์ง๋๋ค. ์ฒซ์งธํญ์ด a, ๊ณต์ฐจ๊ฐ d์ธ ๋ฑ์ฐจ์์ด์์ included[i]๊ฐ i + 1ํญ์ ์๋ฏธํ ๋, ์ด ๋ฑ์ฐจ์์ด์ 1ํญ๋ถํฐ nํญ๊น์ง included๊ฐ true์ธ ํญ๋ค๋ง ๋ํ ๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.


์ ํ ์ฌํญ
1 โค a โค 100
1 โค d โค 100
1 โค included์ ๊ธธ์ด โค 100
included์๋ true๊ฐ ์ ์ด๋ ํ๋ ์กด์ฌํฉ๋๋ค.
์ ์ถ๋ ฅ ์
a | b | included | result |
3 | 4 | [true, false, false, true, true] | 37 |
7 | 1 | [false, false, false, true, false, false, false] | 10 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ 1๋ฒ์ a์ d๊ฐ ๊ฐ๊ฐ 3, 4์ด๊ณ included์ ๊ธธ์ด๊ฐ 5์ ๋๋ค. ์ด๋ฅผ ํ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1ํญ | 2ํญ | 3ํญ | 4ํญ | 5ํญ | |
๋ฑ์ฐจ์์ด | 3 | 7 | 11 | 15 | 19 |
included | true | false | false | true | true |
๋ฐ๋ผ์ true์ ํด๋นํ๋ 1ํญ, 4ํญ, 5ํญ์ ๋ํ 3 + 15 + 19 = 37์ return ํฉ๋๋ค.
solution.js
function solution(a, d, included) {
const arr = [a]
for(let i = 1 ; i < included.length; i ++) {
arr[i] = arr[i-1] + d
}
return arr.reduce((acc, cur, idx) => included[idx] ? acc+cur : acc , 0)
}
- return arr.reduce((acc, cur, idx) => included[idx] ? acc + cur : acc, 0): ๋ฐฐ์ด arr์ ์ํํ๋ฉฐ included ๋ฐฐ์ด์ ๊ฐ์ ๋ฐ๋ผ ํญ์ ์ ํํ์ฌ ํฉ์ ๊ณ์ฐํ๋ค.
- arr.reduce((acc, cur, idx) => ... , 0): reduce ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด arr์ ๋ชจ๋ ํญ๋ชฉ์ ์ํํ๋ฉฐ, ์ด๊ธฐ๊ฐ 0์ ๊ฐ์ง๋ acc ๋ณ์์ ํฉ์ ๋์ ํ๋ค.
- included[idx] ? acc + cur : acc: ํ์ฌ ํญ(cur)์ ์ธ๋ฑ์ค(idx)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก included ๋ฐฐ์ด์ ํด๋น ์ธ๋ฑ์ค๊ฐ true๋ผ๋ฉด ํฉ(acc + cur)์ ํญ์ ์ถ๊ฐํ๊ณ , false๋ผ๋ฉด ๋์ ํฉ(acc)์ ๊ทธ๋๋ก ๋ฐํ๋ค.
reduce () ์ด๊ธฐ๊ฐ?
return arr.reduce((acc, cur, idx) => included[idx] ? acc + cur : acc, 0)
- reduce ๋ฉ์๋ ๋์ ์๋ , 0์ accumulator์ ์ด๊ธฐ๊ฐ์ ๋๋ค. ๊ฐ์๊ฐ ์์๋๊ธฐ ์ ์ 'acc'์ ์ด๊ธฐ ๊ฐ์ด ๋ฌด์์ธ์ง ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ '0'์ผ๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก 'acc'์ ์ด๊ธฐ๊ฐ์ด '0'์ธ ์ํ์์ ์ถ์๊ฐ ์์๋ฉ๋๋ค.
์ด๊ธฐ ๊ฐ '0'์ ์ ๊ณตํจ์ผ๋ก์จ 'arr' ๋ฐฐ์ด์ด ๋น์ด ์๊ฑฐ๋ ํฌํจ๋ ์์๊ฐ ์๋ ๊ฒฝ์ฐ(๋ชจ๋ 'included' ๊ฐ์ด 'false'์) 'reduce' ๋ฉ์๋๊ฐ ์ฌ์ ํ '0'์ ๋ฐํํ๋๋ก ํ๋ค.
์์ฝํ๋ฉด reduce ๋ฉ์๋๋ ๋์ฐ๊ธฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก , 0์ ์ฌ์ฉํ๋๋ฐ, ๋ฐฐ์ด์ด ๋น์ด์๊ฑฐ๋ sum์ ์์๊ฐ ํ๋๋ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ์๋ ์ ํจํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ๋ค.