Notice
Recent Posts
Recent Comments
Today
Total
05-16 05:42
Archives
관리 메뉴

Jeongchul Kim

programmers lv1 두 정수 사이의 합 python 본문

Algorithm

programmers lv1 두 정수 사이의 합 python

김 정출 2019. 9. 20. 21:46

programmers lv1 두 정수 사이의 합 python


문제 설명

두 정수 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의 대소관계는 정해져있지 않습니다.


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


첫 번째 풀이(정답)

[1] a와 b라는 대소 관계가 정해져 있기 않기 때문에 min(), max()로 어느 것이 최대 최소인지 확인합니다.

[2] range를 써서 더하면 됩니다.


def solution(a, b):

    answer = 0

    for item in range(min(a,b), max(a,b)+1):

        answer += item

    return answer



다른 사람 풀이 1

sum()라는 함수를 써서 range 범위안에 있는 값을 더하였습니다.


def solution(a, b):

    if a > b: a, b = b, a

    return sum(range(a,b+1))


다른 사람 풀이 2

수학 공식을 사용했습니다. 1부터 N까지의 총합은 N(N+1)/2 입니다.

a서부터 b까지의 총합은 ((a-b)+1)(a+b)/2 입니다.

def solution(a, b):

    return (abs(a-b)+1)*(a+b)//2




Comments