코딩테스트 | (JavaScript) 프로그래머스 : 두 정수 사이의 합

trevor1107·2021년 8월 24일
0

✅문제

두 정수 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의 대소관계는 정해져있지 않습니다.

🎹📢입출력 예제

✍풀어보기

function solution(a, b) {
    let answer = 0;
    let min = a < b ? a : b;
    let max = b < a ? a : b;
    for(let i = min; i <= max; ++i){
       answer += i; 
    }
    
    return answer;
}

for문에 크거나 같은 조건으로 a와 b가 같은 경우에도 둘 중 하나의 값을 리턴한다!

생각 나는데로 금방 풀 수도 있었지만, 뭔가 더 효율적으로 풀 수 있는 방법이 없을까 고민해봤지만 계산식이나 패턴을 못 찾았다. ㅠㅠ 그래서 기대감을 가지고 다른 사람의 풀이 확인 버튼을 누른다!!


🎈다른 사람의 풀이

function solution(a, b){
    return (a+b)*(Math.abs(b-a)+1)/2;
}

올레~~ 어떤 멋진 분께서 계산식을 잘 찾은 것 같다!! 내가 원하던 효율적인 방법이다.
공식은 외워야지 (두 수의 합) * (두 수의 차이 절댓 값 + 1) / 2)



참고 자료 및 사이트 (감사합니다)

profile
프론트엔드 개발자

0개의 댓글