
def solution(a, b):
x, y = min(a, b), max(a, b)
return sum(range(x, y + 1))
시간 복잡도:
O(N)
def solution(a, b):
return sum(i for i in range(a,b+1)) if a<=b else sum(i for i in range(b,a+1))
이 문제를 처음 풀었을 때의 코드이다. 확실히 현재 풀이가 훨씬 깔끔하다.
max(), min() 함수 사용처음 코드에서는 삼항연산자를 사용하여 a,b 변수를 그대로 사용했지만, 이번에는 max(), min() 함수를 이용해 좀 더 코드를 축약시켜 보았다. 이 덕에 가독성이 훨씬 향상되었다.
range() 함수를 그대로 계산이전 코드에서는 습관적으로 i for i in range(a,b+1) 같이 range() 함수를 리스트 형태로 변형하여 sum()에 넣었지만, 이번에는 range() 자체를 넣어도 동작한다는 것을 깨닫고 고쳐보았다.
sum(range(x,y+1))
sum() 함수는 range() 자체를 계산할 수 있기 때문에, list 형태로 만들지 않아도 된다!