두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
if문을 사용해 a < x < b 이런식으로 하나씩 할려고 했는데
작은수와 큰수를 구하기는 함수 Math.min(), Math.max() 함수가 있는 것을 발견하고 이걸 사용해봤다.
이렇게 사용하면 a 와 b의 크기를 비교하여 작은 값부터 큰 값까지 확인 할 수 있다.
function solution(a, b) {
let sum = 0;
const min = Math.min(a, b);
const max = Math.max(a, b);
for (let i = min; i <= max; i++) {
sum += i;
}
return sum;
}
여기서 루프를 사용하므로 입력 값의 범위가 클 경우 성능이 떨어질 수 도 있다고한다.
function solution(a, b) {
// a와 b의 작은 값과 큰 값을 결정
const min = Math.min(a, b);
const max = Math.max(a, b);
// 합산: 수학 공식 사용
const sum = ((max - min + 1) * (min + max)) / 2;
return sum;
수학 공식을 사용하는 방식도 있었다.
수학공식도 좀 알아야 좀 더 쉽게 코드를 짤 수 있을 것 같다는 생각이 든다..
'TIL' 카테고리의 다른 글
JavaScript 배열 고급 메서드 활용 (1) | 2024.12.13 |
---|---|
배열 기초 다지기 [ ] (0) | 2024.12.12 |
루트,제곱값 구하기 (1) | 2024.12.06 |
조건문 (0) | 2024.12.05 |
자연수 뒤집어 배열로 만들기 (0) | 2024.12.04 |