문제 설명
두 정수 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의 대소관계는 정해져있지 않습니다.
내 답안
function solution(a, b) { var answer = 0; if(a == b){ answer = a; }else{ if(a > b){ for(let i=b; i<=a; i++){ answer += i; } }else { for(let i=a; i<=b; i++){ answer += i; } } }
return answer;
}
풀이:
조건문을 통해 두정수가 같을 경우, 같지 않을 경우를 나누어 조건을 걸고 이후에 반복문을 통해 결과값에 더해 준다
**--참고 할만한 다른 답안--**
function adder(a, b, s = 0){
for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
return s;
}
console.log( adder(3, 5) )
함수 설명
Math.min():주어진 숫자들중 가장 작은 값 반환
Math.max():주어진 숫자들중 가장 큰 값 반환
풀이 : 반복문을 통해 작은 수(min) 부터 큰수(max)사이에 속한 정수의 합을 구하는데 조건문을 따로 작성하지 않고 Math객체를 통해 값을 받아 해결한다.
두 정수가 같은 값일 경우, 반복문의 초기문, 조건문 에서 둘중 아무 같이 반환되고, 초기문과 반복문의 값이 같기때문에 결과 값에 1번 들어가고 반복문이 종료된다.