✏️ 문제 설명
두 정수 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 |
✏️ 문제 풀이
- 내 풀이
function solution(a, b) {
if (a === b) return a;
let result = [];
if (a > b) {
let lesser = b;
b = a;
a = lesser;
}
for (let i = a; i <= b; i++) {
result.push(i);
}
return result.reduce((acc, cur) => acc + cur, 0);
}
- 다른 풀이
function solution(a, b) {
let result = 0;
return (a+b)/2*(Math.abs(b-a)+1);
}
a부터 b까지의 🌟등차수열의 합은 (양 끝항(a, b)의 산술평균) * 항의 개수 !!
개수는 b-a+1을 해주면 되고 a, b의 대소관계는 정해져 있지 않으므로 Math.abs()으로 절댓값을 구해 계산한다.
+) n=항의 개수, a는 첫 번째 항, d는 공차로 n{2a + (n-1)d}/2 식으로도 수열의 합을 구할 수 있다.
참고 사이트
🙂 공감과 피드백 환영합니다.
'Algorithms > 코테 문풀' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 - JavaScript / repeat(), fill(), 정규 표현식 풀이 (0) | 2023.01.21 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 - JavaScript / substring(), slice(), charAt() + 레거시(lagacy)란? (0) | 2023.01.20 |
[프로그래머스] 가장 가까운 같은 글자 - JavaScript / Stack (0) | 2023.01.18 |
[프로그래머스] 과일 장수 - JavaScript (0) | 2023.01.18 |
[프로그래머스] 연속된 수의 합, x만큼 간격이 있는 n개의 숫자 - JavaScript / Array.from 시퀀스 생성기 (0) | 2023.01.16 |