✍️문제풀기✍️/JS_Programmers school
프로그래머스(LV 1. 두 정수 사이의 합)
과부하가즈아
2023. 6. 16. 12:26
LV 1. 두 정수 사이의 합
https://school.programmers.co.kr/learn/courses/30/lessons/12912
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
두 정수 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 = 3 / 3 / 5
- b = 5 / 3 / 2
- return = 12 / 3 / 12
문제를 이해는 했는데 어떻게 방향을 잡아야 할지 몰랐다....ㅎ
>그래서 일단 a < b, a = b, a > b로 나눠서 생각했고 for문을 활용해야겠다고 생각했다.
>우선, for문을 사용하려고 했을때 i는 작은 수 부터시작, i는 큰 수 보다 작거나 같을때까지, 반복한다 라는 조건을 생각했다.
그리고 a < b, a = b, a > b로 나누면
a < b 일때,
for(let i = a; i <= b; i++){ answer = answer += i }
a > b
for(let i = b; i <= a; i++){ answer = answer += i }
까지 생각했고, a=b일 경우에는 위 두 경우에 같이 넣으면 되지 않을까 생각했다.
그래서 합쳐서function solution(a, b) { var answer = 0; if (a < b) { for (let i = a; i <= b; i++) { answer = answer += i } } else if (a >= b) { for (let i = b; i <= a; i++) { answer = answer += i } } return answer; } console.log(solution(3,5))
이렇게 해결해 볼 수 있었다.
function solution(a, b) {
let answer = 0;
for(let i = Math.min(a, b); i <= Math.max(a, b); i++) {
answer = answer + i;
}
return answer;
}
function adder(a, b){
var result = 0
return (a+b) * (Math.abs(a-b)+1) / 2;
}