[프로그래머스]두 정수 사이의 합

Minyoung Lee·2023년 1월 1일

Programmers

목록 보기
3/15
post-thumbnail

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12912

문제 설명

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

개념 & 이론

  • 등차수열의 합 이용
    : 항의 수 * (초항 + 말항) // 2

코드

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

이렇게 해도 시간 복잡도는 O(n)이기에 시간이 걸린다.

최적 코드

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

위의 등차수열 합에 맞춰 시간 복잡도를 확 줄여준다.
왜 이 생각이 안나는지 ㅜㅜㅜ

profile
웩알고👩‍💻

0개의 댓글