코딩테스트

Javascipt 연습문제 - 두 정수 사이의 합

코치원 2022. 9. 28. 17:43

문제

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

제한 조건
a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.
입출력 예
a	b	return
3	5	12
3	3	3
5	3	12

문제이해

1. 두 정수 a, b사이에 어떤 숫자가 있는지 알아내야한다.

2. 두 정수 사이의 최솟값과 최대값을 정해서 if문으로 정리해본다.

3. 합을 나타낸다.

 

문제풀이

function solution(a, b) {
    let answer = 0;
    if (a <= b){
        for (i = a; i <= b; i++){
            answer = answer + i;
        }
    } else {
        for (let i = b; i <= a; i++){
            answer = answer + i;
        }
    }
    return answer;
}

두 정수 a, b중에 b가 a보다 클 경우를 조건으로 지정하고 for문으로 반복문을 해서 조건을 만들고 아니면 반대되는 for문으로 반복문을 만들어서 해결했다. 

 

다른 문제 풀이

function solution(a, b) {
    let answer = 0;
    
    let min = Math.min(a, b);
    let max = Math.max(a, b);
    
    for (i = min; i <= max; i++){
        answer += i;  // answer = answer + i랑 동일
    }
    return answer;
}

이게 매우 간결하고 처음부터 Math.min과 Math.max를 정하고 for문으로 정리했는데 if문을 안쓰고도 정리할 수 있어서 좋았다.