두 정수 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;
//3가지 경우의 수로 나눠서 if문을 구성하였다.
if (a > b){
for(let i = 0; i <= a-b; i++){
answer += b+i;
// a-b = 2다.
// 0 = 3+0 = 3
// 3 = 3+1 = 4
// 4 = 3+2 = 5
// 12 = 3+ 4+ 5 = 12
}
}
else if (a == b){
answer = a;
}
else if (a < b){
for(let j = 0; j <= b-a; j++){
answer += a+j;
}
}
return answer;
}
function solution(a, b) {
var answer = 0;
let num = [];
if (a === b) {
answer = a;
} else {
num.push(a,b);
num.sort((a,b)=>a-b); // 오름차순 정렬
for (let i=num[0]; i<num[1]+1; i++) {
answer += i
// i = 3, 3 < 6 은 true이기 때문에 answer = 0+3 = 3
// i++증감이 되고 i = 4, 4 < 6 은 true이기 때문에 answer = 3+4 = 7
// i++증감 되서 i = 5, 5 < 6 은 true 이기 때문에 answer = 7+5 = 12
// 6 < 6 은 false여서 for문 종료!
}
}
return answer;
}
이 문제 풀이도 굉장히 신박한 방법이다.
num=[]
num.push
를 하여 (a, b) 배열을 만들어주고 sort
를 하여 ab를 하면 [3,5]로 오름차순 정렬이 된다.