728x90
🔥 Programmers Lv.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가 같은 경우는 둘 중 아무 수나 리턴하세요.
∙ a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
∙ a와 b의 대소관계는 정해져있지 않습니다.
👉🏻 My answer
function solution(a, b) {
let answer = 0;
let num = [];
if (a == b) {
answer = a;
} else {
num.push(a,b);
num.sort((a,b)=>a-b);
for (let i=num[0]; i<=num[1]; i++) {
answer += i
}
}
return answer;
}
: a와 b의 값이 같을 때 두 수 중 아무 수나 반환하도록 answer = a 로 설정해두었고, a와 b가 같지 않을 때 num배열에 a와 b를
push메서드를 통해 배열에 넣어준 후 sort메서드를 통해 오름차순으로 정렬해줍니다.
: 그 후, num[0]과 num[1]사이의 숫자를 더해주기 위해 반복문을 통해 답을 구해줍니다.
: 그 후, num[0]과 num[1]사이의 숫자를 더해주기 위해 반복문을 통해 답을 구해줍니다.
👉🏻 Another ways
function adder(a, b){
var result = 0
return (a+b)*(Math.abs(b-a)+1)/2;
}
: (Math.abs(b-a)+1) = 총 숫자의 갯수
: (Math.abs(b-a)+1)/2 = 맨처음 숫자와 끝 숫자 씩 묶은 쌍
: 정렬된 숫자의 처음과 끝을 더하고 쌍의 갯수만큼 곱하면 모든 수의 합이 됩니다.
: (Math.abs(b-a)+1)/2 = 맨처음 숫자와 끝 숫자 씩 묶은 쌍
: 정렬된 숫자의 처음과 끝을 더하고 쌍의 갯수만큼 곱하면 모든 수의 합이 됩니다.
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "약수의 개수와 덧셈" (1) | 2022.11.24 |
---|---|
프로그래머스 Lv.1 "이상한 문자 만들기" (1) | 2022.11.23 |
프로그래머스 Lv.1 "콜라츠 추측" (2) | 2022.11.21 |
프로그래머스 Lv.1 "없는 숫자 더하기" (1) | 2022.11.21 |
프로그래머스 Lv.1 "행렬의 덧셈" (1) | 2022.11.21 |
댓글