#1. 두 정수 사이의 합
문제 설명
두 정수 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) {
// 값을 더할 변수 선언
let result = 0;
// 파라미터로 받은 값 a 부터 b와 같을 때 까지 반복하면서 값을 더한다
for(let i = a; i <= b; i++) result += i;
// 만약 파라미터로 받은 값 a가 b보다 클 경우 b 부터 a 까지 반복하면서 값을 더한다
if(a > b) for(let i = b; i <= a; i++) result += i;
return result;
}
// 호출
solution(3,5); // 12
solution(3,3); // 3
solution(5,3); // 12
결과
소감
반복문만 활용할 줄 아면 쉽게 푸는 문제였습니다.
a값 보다 b값이 클 경우 if문을 활용해서 해결했지만, 다른 분의 풀이를 보니 Math 객체를 활용하면 더 쉽고 간결하게 풀 수 있는 방법을 알게 되었습니다.
function solution(a, b) {
let result = 0;
for(let i = Math.min(a, b); i <= Math.max(a,b); i++) result += i;
return result;
}
Math 객체의 min() 함수와 max() 함수를 사용하여 a와 b 값을 비교해 if문을 사용하지 않고 해결 할 수 있습니다.
'Algorithm > programmers' 카테고리의 다른 글
[Algorithm] JavaScript, Level1. 나누어 떨어지는 숫자 배열 (1) | 2022.09.26 |
---|---|
[Algorithm] JavaScript, Level1. 문자열 내 마음대로 정렬하기 (0) | 2022.09.26 |
[Algorithm] JavaScript, Level1. 문자열 내 p와 y의 개수 (0) | 2022.09.25 |
[Algorithm] JavaScript, Level1. 문자열 내림차순으로 배치하기 (0) | 2022.09.24 |
[Algorithm] JavaScript, Level1. 문자열 다루기 기본 (1) | 2022.09.22 |