Code KATA/알고리즘 코드카타

[2024.12.23] 두 정수 사이의 합

iiblueblue 2024. 12. 23. 11:10

문제 설명

두 정수 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

 

 

문제 풀이

풀이 언어 : C++

#include <string>
#include <vector>

using namespace std;

long long solution(int a, int b) {
    long long answer = 0;
    
    // a와 b가 같은 수일 경우(3, 3)
    if(a==b)
    {
        answer=a;
    }
    // a가 b보다 작을 경우(3, 5)
    else if(a<b)
    {
        for(int i=a; i<=b; i++)
        {
            answer+=i;
        }
    }
    // b가 a보다 작을 경우(5, 3)
    else if(a>b)
    {
        for(int i=b; i<=a; i++)
        {
            answer+=i;
        }
    }
    
    return answer;
}

입출력 예를 보면 알 수 있듯이 일단 세가지 경우로 나눌 수 있다.

 

a와 b가 같은 경우 즉, 3, 3이 매개변수로 들어왔을 경우는 더하지 않고 a의 값을 그냥 리턴한 것을 볼 수 있다. 따라서 두 수가 같은 경우에는 answer=a로 한다.

두 번재로 a가 b보다 작은 수가 들어왔을 경우이다. 그런 경우 순서대로 a부터 b까지 순서대로 더해서 값을 리턴하면 된다. 반대로 b가 a보다 작은 경우 반대로 b부터 a까지 순서대로 더해서 값을 리턴하면 된다.

 

 

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12912

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr