# 문제 원문
두 정수 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 |
# 문제 풀이
입력 받은 a,b를 범위로 모든 수들을 합해서 그 합을 반환하는 문제, 가우스 공식에 대해서 잘 아는 사람이면 쉽게 풀 수 있지만, 난 생각도 못해서 반복문을 이용해서 풀었다. 입력받은 a === b가 같으면 a를 바로 반환해주고, 아니라면
입력 받은 a , b 를 a - b로 정렬해서 그 범위의 합을 구한후 반환해준다.
# 솔루션 플로우
1. 가우스 공식을 사용하거나, 입력 받은 a, b의 크기를 정렬해준다.
2. 정렬한 a, b를 반복하여서 그 합을 구해준다.
3. 구해준 result를 반환한다.
1. 반복문을 활용한 풀이
function solution(a, b) {
if(a === b) return a;
const nums = [a, b].sort((a, b) => a - b);
let result = 0;
for(let int = nums[0]; int <= nums[1]; int++){
result += int;
}
return result;
}
1. 가우스 공식을 활용한 풀이
function solution(a, b) { // 가우스 공식 사용
return (a + b) * (Math.abs(b - a) + 1) / 2;
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스][LEVEL1] 핸드폰 번호 가리기 (0) | 2021.08.19 |
---|---|
[프로그래머스][LEVEL1] 수박수박수박수박수박수? (0) | 2021.08.19 |
[프로그래머스][LEVEL1] 정수 내림차순으로 배치하기 (0) | 2021.08.19 |
[프로그래머스][LEVEL1] 자릿수 더하기 (0) | 2021.08.19 |
[프로그래머스][LEVEL1]문자열 내림차순으로 배치하기 (0) | 2021.08.19 |