TIL

두 정수의 사이 합

devyu0001 2024. 12. 9. 15:31

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

 

 

if문을 사용해 a < x < b 이런식으로 하나씩 할려고 했는데

작은수와 큰수를 구하기는 함수 Math.min(), Math.max() 함수가 있는 것을 발견하고 이걸 사용해봤다.

이렇게 사용하면 a 와 b의 크기를 비교하여 작은 값부터 큰 값까지 확인 할 수 있다.

function solution(a, b) {
    let sum = 0;
    const min = Math.min(a, b);
    const max = Math.max(a, b);

    for (let i = min; i <= max; i++) {
        sum += i;
    }

    return sum;
}

여기서 루프를 사용하므로 입력 값의 범위가 클 경우 성능이 떨어질 수 도 있다고한다.

function solution(a, b) {
    // a와 b의 작은 값과 큰 값을 결정
    const min = Math.min(a, b);
    const max = Math.max(a, b);
    
    // 합산: 수학 공식 사용
    const sum = ((max - min + 1) * (min + max)) / 2;

    return sum;

수학 공식을 사용하는 방식도 있었다.

 

수학공식도 좀 알아야 좀 더 쉽게 코드를 짤 수 있을 것 같다는 생각이 든다..

'TIL' 카테고리의 다른 글

JavaScript 배열 고급 메서드 활용  (1) 2024.12.13
배열 기초 다지기 [ ]  (0) 2024.12.12
루트,제곱값 구하기  (1) 2024.12.06
조건문  (0) 2024.12.05
자연수 뒤집어 배열로 만들기  (0) 2024.12.04