자바스크립트 공부

Parktaehoon·2022년 10월 5일

자바스크립트 공부를 오늘부터 프로그래머스의 코딩테스트로 하고 있다.
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문 하나밖에 생각 나지 않았는데 결국 구글링을 통해서 해결했다. 다른 분들의 풀이를 보니 정말 잘하시는 분들이 많은거 같다..ㅠㅠ

profile
스스로 공부하는 내용 정리합니다.

0개의 댓글