두 정수 사이의 합

 

 문제 설명

 

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

 

 Python 코드

 

def solution(a, b):
    if a > b : 
        a , b = b , a
    return sum(range(a, b+1))

 

def solution(a, b):

    answer = 0

    for i in range(min(a,b), max(a,b)+1):
    
        answer += i
        
    return answer

 

def solution(a, b):

    return ( abs(a - b) + 1)  * ( a + b ) // 2
  • 수학 공식 사용
  • 1부터 N까지의 총합은 N(N+1)/2 
  • a에서 b까지의 총합 ((a-b)+1) * (a+b) // 2

* 참고 링크 1 : https://jeongchul.tistory.com/645

* 참고 링크 2 : https://velog.io/@cosmos/Programmers%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%91%90-%EC%A0%95%EC%88%98-%EC%82%AC%EC%9D%B4%EC%9D%98-%ED%95%A9-python

* abs ( ) 함수 : 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수

abs(3)
# result : 3

abs(-3)
# result : 3

abs(-1.2)
# result : 1.2

 

* min( ) 함수 : min(iterable)은 max 함수와 반대로, 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 돌려주는 함수

min([1, 2, 3])
# result : 1

min("python")
# result : 'h'

 

* max( ) 함수 : max(iterable)는 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수

max([1, 2, 3])
# result : 1

max("python")
# result : 'y'

 

* 참고 링크 : https://wikidocs.net/32

 

 C++ 코드

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

long long solution(int a, int b) {
    long long answer = 0;
    
    long long sum = 0;
    if ( a > b ){
        for ( int i = b; i < a+1; i++)
            answer += i;
    } 
    else if ( a < b ) {
        for ( int i = a; i < b+1; i++)
            answer += i;
    }
    else {
        answer = a;
    }
    
    return answer;
}

* 참고 링크 : https://jjeongil.tistory.com/601

+ Recent posts