-
[프로그래머스] 두 정수 사이의 합(Python)Algorithm PS👩🏻💻/프로그래머스 2023. 5. 23. 15:12
문제 링크
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
위의 등차수열 합에 맞춰 시간 복잡도를 확 줄여준다.
왜 이 생각이 안나는지 ㅜㅜㅜ'Algorithm PS👩🏻💻 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 12987번: 숫자게임(Python) (0) 2024.05.23 [프로그래머스] 17680번: 캐시(Python, deque) (1) 2024.04.19 [프로그래머스] 나누어 떨어지는 숫자 배열(Python) (0) 2023.05.23 [프로그래머스] 기사단원의 무기(Python) (0) 2023.05.10 [프로그래머스] 개인정보 수집 유효기간(Python) (2) 2023.05.10 - 등차수열의 합 이용