본문 바로가기
알고리즘 스터디/[프로그래머스] 연습문제

[알고리즘] 두 정수 사이의 합 문제 풀이(자바스크립트 javascript)

by 제니운 2022. 7. 15.
728x90

(문제풀이 생각)

 

1. 일단 첫번째 입출력에 있는 a,b 3,5를 고려해보자

 

그럼 3,4,5를 더해주면 되는건데 이거는 우리가 배웠던 for문 쓰면 될 것 같다!

3부터 시작해서 5까지 더하기!

 

2. else를 써서 a가 b보다 클때는? 

 

1번의 for문을 반대로만 써주면 될 것 같다.

 

3. a랑 b가 같을 땐? for문이 시작값에서 끝 값을 구하는 거니까, 1번에 입력하면 될듯

 

(모양 생각)

 

if(a>=b){
     for(let i=b; i<=a; i++){
        answer+=i
}

 

👌 for(let i=b; i<=a; i++) 인 이유는?

a>b, 즉 a가 b보다 크니까! 예를 들어 a가 5, b가 3이면 3부터 5까지 더하면 된다

그래서 시작 i값을 b로 잡고, a까지 커지도록 설정

a까지니까 i<=a 이렇게 써주면 된다.

 

👌 그럼 a도 3, b도 3 이렇게 똑같으면?

3만 산출 되니까 3만 나오게 할 수 있다! 그러니까, if(a>b)에도 = 넣어서 if(a>=b)로 변경하기

 

👌 answer+=i 의미

i값으로 b부터 a까지 ! 즉, 3,4,5 이렇게 나왔으니까 i의 값을 더해줘!

answer+ 로 기록해주기

 

if(a>=b){
     for(let i=b; i<=a; i++){
        answer+=i
}  else{

     for(let j=a; j<=b; j++){
        answer+=j
}

 

👌 a>=b일때 let i로 잡아줬으니까, 이번엔 let j로 써주기

 

👌for(let j=a; j<=b; j++)

a<b 이니까, 3,5라면 a부터 시작해서 5까지!

 

✅ 최종 코드 내용

function solution(a, b) {
    var answer = 0;

    if(b>=a){
        for(let i=a; i<=b; i++){
            answer+=i;
        } 
    } else{
        for(let j=b; j<=a; j++){
            answer+=j;
        }
    }
    return answer;
    
    
}

 

728x90