Learning Log/알고리즘

[알고리즘] 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. (js)

자척개 2023. 1. 25. 18:29
반응형

Q. 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

 

 

 

A.

내 답

function solution(n) {
  let answer = 0;
  for(let i=0; i<=n; i++) {
      if(i%2 === 0) {
        answer += i;
      }
  }
  return answer;
}

 

 

 

더 좋은 답

1)

function solution(n) {
    var half = Math.floor(n/2);
    return half*(half+1);
}

 

2)

function solution(n) {
    var answer = 0;

    for(let i=2 ; i<=n ; i+=2)
        answer += i;

    return answer;
}

 

문제 해결 과정

우선 for문을 쓰고 안에 if문을 넣어야겠다고 생각했다

근데 나는 처음에 예를 들어 7을 함수의 인자로 받아왔다면,

7-i를 해서 7보다 작은 정수를 모두 받고 이걸 if문을 이용해 짝수인지 판별해와야겠다고 생각했다

그냥 직접 짝수만 구하는 방법도 있었는데 말이다

 

그리고 answer += i; 이 부분은 아직 사용이 어려웠다

다른 함수를 이용해서 넣어야하나 생각했는데 사실 저렇게 표현하는 거 여러 번 봤지만 아직 익숙하지 않다

또, 나머지를 구해야 하는데 실수로 i/2를 작성해버렸다 하핫

 

그리고 첫 번째 답은 보고 나서도 다음에 적용하지 못할 거 같다,,,

 

 

 

TIL

나머지(%)

ex.

console.log(13%5);         //output : 3

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Remainder

반응형