코딩 테스트/알고리즘

알고리즘 9번 - js, c++

GREEN나무 2024. 11. 12. 09:48
728x90

JS

문제

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

제한사항
0 < n ≤ 1000


계획

for문으로 n보다 작은 짝수 더하기


function solution(n) {
    var answer = 0;
    for (i = 0; (2*i) <= n; i++){
        answer += 2*i
    }        
    return answer;
}

코드 간략화하기

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

  반복문 없는 짝수 합 공식 :
      n 이하의 짝수는 0, 2, 4, ..., 2×k (여기서 2×k≤n) 형태로 구성됩니다. 
  짝수의 개수 구하기: 
      n 이하의 짝수는 n/2개 입니다.  Math.floor(n / 2)로 계산합니다.
      짝수 합 공식 사용: 0부터 𝑛 이하의 짝수의 합은 𝑘×(𝑘+1)입니다.


출처 

짝수위 합 구하기 : https://velog.io/@meek/JavaScript-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A7%9D%EC%88%98%EC%9D%98-%ED%95%A9


 

◆ C++

참고, 풀이

짝수의 =(n/2)×(n​/2+1)


#include <string>
#include <vector>
using namespace std;

int solution(int n) {
    int m = n / 2;
    return m * (m + 1);
}