728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12912
JS
문제
두 정수 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의 대소관계는 정해져있지 않습니다.
계획
if (a===b){
return a
}else{큰값을 big, 작은값을 small에 넣기
for문으로 작은값 ~큰값 사이의 수의 합을 구합니다.
합을 리턴
참고, 풀이
function solution(a, b) {
let big = 0;
let small = 0;
let sum = 0;
if (a === b) {
return a;
} else if (a > b) {
big = a;
small = b;
} else {
big = b;
small = a;
}
for (let i = small; i <= big; i++) {
sum += i;
}
return sum;
}
최댓값 찾기 Math.max(숫자)
console.log(Math.max(-1, -3, -2));
// Expected output: -1
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// Expected output: 3
최솟값 찾기 Math.min
console.log(Math.min(-2, -3, -1));
// Expected output: -3
const array1 = [2, 3, 1];
console.log(Math.min(...array1));
// Expected output: 1
등차수열의 합 공식 : (max-min+1)*(max+min)/2
답
function solution(a, b) {
let big = 0;
let small = 0;
let sum = 0;
if (a === b) {
return a;
} else {
big = Math.max(a,b)
small = Math.min(a,b)
}
return ((big - small + 1) * (small + big)) / 2;
}
코드 간략화하기
function solution(a, b) {
const [small, big] = a < b ? [a, b] : [b, a];
return ((big - small + 1) * (small + big)) / 2;
}
구조분해 할당
let a, b, rest;
[a, b] = [10, 20];
console.log(a); //10
console.log(b); // 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest); // [30, 40, 50]
출처
Math.max : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/max
Math.min : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/min
등차수열의 합 : https://blog.naver.com/ssooj/222690714757
구조 분해 할당 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
알고리즘 24 서울에서 김서방 찾기 (0) | 2024.11.28 |
---|---|
알고리즘 23번 콜라츠 추측 (0) | 2024.11.27 |
알고리즘 21번 - 추가공부 (0) | 2024.11.26 |
알고리즘 20-추가공부 (0) | 2024.11.25 |
알고리즘 19번 - 추가공부 (0) | 2024.11.22 |