[프로그래머스] 숫자의 표현 풀이

 


1. 문제

https://programmers.co.kr/learn/courses/30/lessons/12924

2. 풀이

  • $ \frac{n(n+1)}{2} $ 공식을 이용하여 구간 합을 구하는 함수를 생성한 후에 모든 구간을 조사합니다.
def range_sum(a, b):
    return b*(b+1)/2 - (a-1)*(a)/2

def solution(n):
    answer = 0
    for a in range(1, n + 1):
        for b in range(a + 1, n + 1):
            r_sum = range_sum(a, b)
            if r_sum == n:
                print(a,b)
                answer += 1
            if r_sum >= n:
                break
    
    return answer + 1