본문 바로가기
프로그래머스/lv1

[12912] 두 정수 사이의 합 python3

반응형

문제 설명

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

문제 풀이

1. a 가 b 보다 크면 a와 b의 순서를 바꿔준다.

2. for 문을 통해 모든 값을 더해준다.

3. a 와 b가 같으면 a를 리턴해주고 아니면 더한 값을 리턴해준다.

def solution(a, b):
    answer = 0
    pre = 0
    if a> b:
        pre = a
        a = b
        b= pre
    for i in range(a,b+1):
        answer += i
    
    return a if a==b else answer

 

다른 사람 문제 풀이

def adder(a, b):
    return (abs(a-b)+1)*(a+b)//2

n(n+1)/2 수열로 문제를 푼다.

 

 

생각 정리

반복되는 더하기는 수열을 통해 해결할 수 있으니 수식을 잘 생각해보자.