자바스크립트 공부를 오늘부터 프로그래머스의 코딩테스트로 하고 있다.
lv.0 에서도 문제가 막혔는데 막힌 문제들을 다시 한번 복기하면서 공부하여야겠다.
array의 평균값 구하기에서 막혔는데, 여기서 reduce method에 대해서 공부할 수 있었다.
//공식문서
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(previousValue, currentValue) => previousValue + currentValue,
initialValue
);
console.log(sumWithInitial);
// expected output: 10
즉 reduce 메서드는 배열.reduce((a,b) => a+b, 시작변수) 로 사용하면 된다.
내가 풀었던 문제는 평균 값을 구하는 문제였기에
function solution(numbers) {
var answer = 0;
answer = numbers.reduce((a,b) => a+b)/numbers.length;
return answer;
}
reduce메서드로 배열의 값을 합치고, 배열의 길이로 나누면 평균값을 도출해낼수있다.
짝수의 합
문제
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
function solution(n) {
var answer = 0;
if(n>0){
for(let i = 1; i <= n; i++){
if(i%2 == 0){
answer += i
}
}
}
return answer;
}
우선 정수 n이 주어지고 n 이하의 짝수를 모두 더해야되는데, 그러기 위해서 먼저 if문을 활용하여 0보다 크고 n보다 작은 범위를 설정해준다.
다음 for문을 활용해서 n범위 안에 값을 반복 시키고 그 안에서 짝수를 뽑는다.
그 값이 true 이면 answer에 담아 그 값들을 모두 합칠 수 있게 += 로 값을 모두 더 해준다.
처음 봤을때는 if문 하나밖에 생각 나지 않았는데 결국 구글링을 통해서 해결했다. 다른 분들의 풀이를 보니 정말 잘하시는 분들이 많은거 같다..ㅠㅠ