코딩/프로그래머스 코딩테스트

[프로그래머스] 두 정수 사이의 합

민쯔 2022. 1. 4. 23:49
728x90
반응형

안녕하세요. 민쯔입니다.😊
이번에는 "두 정수 사이의 합" 문제에 대해 풀어보았는데요.
이번 문제는 쉬운 편인데 어떻게 간결하게 푸는지에 대한 문제인 것 같아요.

이번 문제 해결방안은 두 가지에 대해 소개해볼까 해요.
그럼 해결방안에 대해 설명하겠습니다.

방법 1

function solution(a, b) {
    var answer = 0;
    
    if(a > b) [a, b] = [b, a]; // a>b일 경우 a는 b가 되고, b는 a가 됩니다.
    for(let i=a; i<=b; i++) answer += i;
    return answer;
}

이 방법은 a는 작은 수, b는 큰 수로 바꾼 뒤에 for문을 사용해서 값을 구해주는 방법입니다.

 

[a, b] = [b, a]; 는 구조 분해 할당을 이용한 방법인데요. 자세한 설명은 링크로 남기겠습니다.👇
https://velog.io/@jinyongp/%EB%91%90-%EA%B0%92%EC%9D%84-Swap-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

두 변수를 swap하는 방법은?

JavaScript에서 두 값을 바꾸는 방법들은 무엇이 있을까

velog.io

 

a는 작은 수 b는 큰 수로 바꾸어준 뒤에
for문을 사용하여 초기값을 작은 수(a)로 조건식은 큰 수(b)로 넣어주고
answer += i; 을 사용해서 a~b까지의 수를 다 더합니다.

 

방법 2

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

이 방법은 Math에 min, max를 사용하여 for문에 초기값에 작은 값 조건식에 큰 값을 넣어 구하는 방법입니다.

  • Math.min() 함수는 주어진 숫자들 중 가장 작은 값을 반환합니다.
  • Math.max()함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.

이 방법이 더 간단해서 이 방법을 더 추천드립니다.

728x90
반응형