알림
본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.
문제
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를 리턴합니다.
코드
// 초기
function solution(a, b) {
var answer = 0;
if(a <= b){
for(let i = a; i <= b; i++){
answer += i;
}
}else {
for(let i = b; i <= a; i++){
answer += i;
}
}
return answer;
}
// 리팩토링
function solution(a, b) {
var answer = 0;
const plus = (a, b) => {
for(let i = a; i <= b; i++){
answer += i;
}
}
a <= b ? plus(a, b) : plus(b, a)
return answer;
}
풀이
입력된 작은 수부터 시작해 입력된 큰 수까지 증가하는 i를 반복문을 통해 더해주면 되는 간단한 문제입니다.
그런데 문제를 보면 무조건 a에 작은 값이 입력되는 게 아닌, b가 작을 수도 있고, 둘이 같은 값이 입력될 수도 있습니다.
따라서 조건문으로 범위를 a <= b와 a > b 두 개로 나눠서 계산을 해 줬습니다.
블로그 포스팅 중에 발견한 건데, 반복문이 유사한 형태로 사용되었길래, 중복되는 코드를 지우고자 함수로 만들어, 조건문에 따라 매개변수를 전송하도록 코드 리팩토링을 해 봤습니다. 2줄 정도 깔끔해졌네요 ㅎㅎ
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 내적(JavaScript) (0) | 2022.07.23 |
---|---|
[Programmers] 나머지가 1이 되는 수 찾기(JavaScript) (0) | 2022.07.21 |
[Programmers] 로또의 최고 순위와 최저 순위(JavaScript) (0) | 2022.07.20 |
[Programmers] 문자열 내 p와 y의 개수(JavaScript) (0) | 2022.07.19 |
[Programmers] 수박수박수박수박수박수?(JavaScript) (0) | 2022.05.14 |
댓글