๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐฐ์ด์ ํ๊ท ๊ฐ ๋ฌธ์ ํ์ด
ํ์ด ๊ณ ๋ฏผ
์ฐ์ solution์ ํจ์๊ฐ ๋ฐ๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด "๋ฐฐ์ด"์ด๋.. ๋ฐฐ์ดํ๋ฉด ๋ฐ๋ณต์ธ๋ฐ, ๋ง์ฝ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ค ํ๋ฉด ํ๋ํ๋ ๋ฐฐ์ด์ ์์๋ฅผ ๋์๊ฐ๋ฉด์ ์ ๋ถ ๋ํ๊ณ ๋์ ๋ฐ์ ๋ฐฐ์ด์ ์์ ๊ธธ์ด๋ก ๋๋์ด์ฃผ๋ฉด ๋๊ฒ ๋๋ฐ???
์ด๊ฑฐ๋ค ์ถ์ด ๋ฐ๋ก ์ฝ๋ฉ ๋์ !!
์ ์ถ ์ฝ๋
๋ค์ด์จ arr ๋ผ๋ ๋ฐฐ์ด์ ๊ฐ์ง๊ณ , ํด๋น ์์์ ์ ๊ทผํ๊ธฐ ์ํด์ i๋ผ๋ for ๋ฌธ ์์ ์กฐ๊ฑด๋ณ์๋ฅผ arr์ index์์์ ๋น์ ํ๊ณ , ๋ฐฐ์ด์ index์ ์ด๊ธฐ๊ฐ์ธ 0๋ฒ๋ถํฐ ๋ค์ด์จ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ์กฐ๊ฑด์ ์ก๊ณ ํ ๋ฒ ๋๋๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ ์ฆ๊ฐ์ ๋ํ๋๋ค.
answer๋ผ๋ ์๋ณ์์ ํด๋น arr์ i๋ฒ ์์์ ๊ฐ์ ๋ํ๊ธฐ ๋ฑํธ ์ฐ์ฐ์๋ฅผ ํตํด ์ ์ฅํ๊ณ return ๊ฐ์ผ๋ก for๋ฌธ์ ๋๊ณ ๋์จ ๋ชจ๋ arr์ ์์๊ฐ์ด ๋ํด์ง answer๋ผ๋ ์๋ณ์์ ํด๋น ๋ฐฐ์ด์ ๊ธธ์ด๋ก ๋๋์ด์ฃผ๋ฉด์ ํ๊ท ๊ฐ์ ๊ตฌํ๋ ๋ก์ง์ ๋ง์ณค๋ค.
function solution(arr) {
var answer = 0;
for (i = 0; i < arr.length; i++) {
answer += arr[i];
}
return answer / arr.length;
}
let arr = [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99];
console.log(solution(arr));
์ ์ถ ํ
์ ์ถํ๊ณ ๋๋ ์ค๋๋ง์ forEach๋ ์ฌ์ฉํด๋ณด๊ณ ์ถ์ด์ ๊ฐ์ ๋ฐ๋ณต๋ฌธ์ ํตํด์ ๋ ๋ง๋ค์ด ๋ณด์๋ค.
function solution(arr) {
var answer = 0;
arr.forEach((i) => {
answer += i;
});
return answer / arr.length;
}
let arr = [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99];
console.log(solution(arr));
๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋
๋ค๋ค ๋น์ทํ ์ฝ๋๊ฐ ๋ง์ด ๋ณด์ด๋๊ฒ ๊ฐ์ผ๋ reduce ๋ฉ์๋๊ฐ ์ค๋ ์ฐธ ๋ง์ด ๋ณด์ฌ์ ์ด ์ฝ๋๋ฅผ ๊ฐ์ ธ์๋ค.
function solution(numbers) {
var answer = numbers.reduce((a,b) => a+b, 0) / numbers.length;
return answer;
}
์ธ์๋ก ์ฝ๋ฐฑํจ์๋ฅผ ๋ฐ๊ณ ๊ทธ ์ฝ๋ฐฑํจ์์๋ 4๊ฐ์ ์์๊ฐ ํฌํจ๋๋ค๊ณ ํ๋ค์.
์ ์ฝ๋์์ a๋ ํ์ฌ๊น์ง์ ๋์ ๊ฐ์ ๋ํ๋ด๋ ๊ฒ ๊ฐ๊ณ , b๋ ํ์ฌ ์์์ ๊ฐ์ ๋ํ๋ด๋ ๊ฒ ๊ฐ์์. ๊ทธ๊ฑธ reduce ๋ฉ์๋์ ์ฝ๋ฐฑํจ์ ๋ถ๋ถ์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ด์ฃผ๋ฉด์ ๋ฉ์ธ๋ก์ง์์๋ ๋์ ๊ฐ๊ณผ ํ์ฌ์์์ ๊ฐ์ ๋ํด์ฃผ์๊ณ , 0 ์ ๋ญ์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋ํ ๊ฐ์ solutionํจ์์ ์ธ์์ธ ๋ค์ด์จ ๋ฐฐ์ด์ ์ด ๊ธธ์ด๋ก ๋๋์ด์ค ํ ๋ฆฌํด์์ผฐ๋ค์.
์, 0์ ์ฐพ์๋ณด๋ initialValue๋ก reduce ๋ฉ์๋ ์ฌ์ฉ์ "์ ํ์ฌํญ"์ ์ํ๋ฉฐ, ์ฝ๋ฐฑํจ์์ ์ฒซ ๋ฒ์งธ ํธ์ถ์์ ๋์ ๊ฐ์ธ a์ ์ด๊ธฐ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ฒ์ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋์์ ๋์๋ a์๋ 0์ธ๊ฐ์ผ๋ก ์งํ์ด ๋์๊ณ ์ ์ฒด๋ฅผ ๋ค ๋๊ณ ๋ ๊ฐ์ answer๋ผ๋ ์๋ณ์์ ํ ๋น ํ์ ๊ทธ ๊ฐ์ return ํ๋ฉด์ ๊น๋ํ๊ฒ ์ฝ๋๊ฐ ์ ๋ฆฌ๋๊ฒ ๊ฐ์ต๋๋ค.
reduce๋ ๋ฐฐ์ด์ ๊ดํ ๋ฉ์๋์ด๊ณ , ๋ฐฐ์ด์ ์ถ์ฝ๊ฐ์ ๋ํ๋ผ๋ ์์ฃผ ์ ์ฉํ๋ค๊ณ ํ๋ ๋ค์์๋ ๋ฐฐ์ด์ ์ ๊ทผํ์ฌ ๊ฐ์ ์ถ์ฝ์ํฌ ๋ ์ด ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์ง๋ด์ผ๊ฒ ์ต๋๋ค !!
ํ์คํ ์ฝํ ๋ฅผ ๊ฒช์ผ๋ฉด์ ๋ค๋ฅธ ๋ถ๋ค์ด ์ด๋ค ์ฝ๋๋ฅผ ๋ง์ด ์ฌ์ฉํ์๋์ง ์ ์ฝ๋์ ๋น๊ต๋ฅผ ํ ์ ์์ด์ ๊ทธ๊ฒ ๋๋ฌด ์ข์๊ฒ ๊ฐ์์.
reduce ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ด๊ฐ ๋ค์ ์ง ๋ณธ ์ฝ๋
function solution(arr) {
var answer =
arr.reduce((acc, cur) => {
return acc + cur;
}, 0) / arr.length;
return answer;
}
let arr = [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99];
console.log(solution(arr));
๋ !
#์ฝ๋ฉํ ์คํธ #๋ฐฐ์ด์_ํ๊ท ๊ฐ #ํ๋ก๊ทธ๋๋จธ์ค #์ฝ๋ฐฑํจ์ #reduce #๋ฐ๋ณต๋ฌธ #for #forEach #์ฝ๋๋น๊ต
'Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ฉ ํ ์คํธ] : ํธ์ง (0) | 2023.08.02 |
---|---|
[์ฝ๋ฉ ํ ์คํธ] : ์๊ผฌ์น (0) | 2023.08.02 |
[์ฝ๋ฉ ํ ์คํธ] : ์ง์์ ํฉ (0) | 2023.08.01 |
[์ฝ๋ฉ ํ ์คํธ] : ๊ฐ๋๊ธฐ (0) | 2023.07.31 |
[Programmers] : ๋ฐฑ์คํ๋ธ์ ์ฝ๋ฉํ ์คํธ ๊ฒฐ๊ณผ github ๋ ํผ์งํ ๋ฆฌ ์ฐ๋ ๋ฐฉ๋ฒ. (Allow-CORS ์ค์ ๋ฐฉ๋ฒ) (0) | 2023.06.12 |