두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
| a | b | return |
|---|---|---|
| 3 | 5 | 12 |
| 3 | 3 | 3 |
| 5 | 3 | 12 |
## 등차수열의 합 공식 활용
def solution(a, b):
# a > b일 경우
if a > b: a, b = b, a
return (b-a+1)*(a+b)//2
## sum() 활용
def solution(a, b):
# a > b일 경우
if a > b: a, b = b, a
return sum(range(a, b+1))
간단한 문제였던 만큼 두 가지 방법을 생각했다. 비용이 많이 들지 않는 것은 아무래도 합 공식을 활용한 경우일 것이다.
def adder(a, b):
return (abs(a-b)+1)*(a+b)//2
수열의 합 공식을 사용했다는 점에서 나와 거의 유사하지만, abs() 절댓값 함수를 사용해 줌으로써 a와 b 사이의 대소관계에 크게 신경쓰지 않아도 되는 코드이다.
수학적으로 접근해본 것은 좋았으나, 다른 사람들의 풀이 코드처럼 if문을 통해 a, b를 바꿔주는 것보다 한 단계 나아가 수식에서 해결할 수 있는 방법을 생각해보았다면 더욱 좋았을 것 같다.