[Programmers] 두 정수 사이의 합 - JS

지냐킴·2022년 7월 16일
0

코딩테스트

목록 보기
1/28
post-thumbnail

✅ 문제 설명

두 정수 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 return
    3 5 12
    3 3 3
    5 3 12
  • 기본코드
function solution(a, b) {
    var answer = 0;
    return answer;
}

문제링크

✅ 내 문제풀이

function solution(a, b) {
    var answer = 0;
    if (a>b){  //a가 b보다 클때 
        for(let i=0; i <= a-b; i++){ //조건문을 돌려주고 
            answer += b+i; // answer에 b+i를 더해준다 
        }
        
    }
    else if(a == b){ //a와 b가 같을땐
        answer =a;  // a 값을 불러온다
    }

    else if (a<b){ //b가 a 보다 클때
        for(let i=0; i <= b-a; i++){ // 조건문을 돌려주고 
            answer += a+i; // answer 에 a+i를 더해준다 
        }
        
    }
        return answer;
}

✨TIL

  • += 는 앞의 변수에 뒤의 값을 더해주는 의미이다.
    문제를 읽고 무조건 if/else 구문을 생각했는데 다른사람의 해답을 보니 엄청 다양하다

다른 풀이방법
1) 가우스 공식, 등차수열의 합 공식

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

설명 링크

2) 최댓값, 최소값을 판별한 후 for문 돌리기

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

찾아보고 읽어본거에 의의를 두자..

헷갈리는 for 구문 정리하기

for(let i=0; i< array.length ; i++)

let i = 0 : 초기화 구문
; : 닫기 = 구분
i< array.length : 조건식
i++ : 업데이트 할 구문

profile
코린이일기

0개의 댓글

관련 채용 정보