NIRVANA

[level 1] 두 정수 사이의 합 본문

Coding test(Python3)/Programmers

[level 1] 두 정수 사이의 합

녜잉 2023. 7. 10. 11:55

문제

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

문제 풀이 접근법1

1) 정수 a, b를 비교하여 둘 중 작은 것을 반복문의 시작값으로, 큰 것을 끝값으로 둔다

2) 반복문을 진행하면서 answer 두 수 사이의 값을 더한다

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

 


다른 분들 풀이

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))

와 이거 진짜 너무 좋은 풀이인 것 같다!

그리고 sum함수를 이렇게 사용할 수 있는 것도 처음 알았다. 

다음 번에 이렇게 한 번 사용해 봐야지

 

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

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( adder(3, 5))

수학 공식을 사용한 것도 인상깊었다.

반복문을 사용하지 않으니까 복잡도 측면에서 최고의 코드인듯!