자바스크립트 공부

Parktaehoon·2022년 10월 5일
0
post-custom-banner

자바스크립트 공부를 오늘부터 프로그래머스의 코딩테스트로 하고 있다.
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
스스로 공부하는 내용 정리합니다.
post-custom-banner

0개의 댓글