[프로그래머스] Lv.1 | 두 정수 사이의 합 (Python)

김찬미·2024년 8월 16일

코딩 테스트 (Python)

목록 보기
45/54

➕ 두 정수 사이의 합


💻 최종 코드

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 형태로 만들지 않아도 된다!

profile
백엔드 지망 학부생

0개의 댓글