프로그래머스 level 2 숫자의 표현

Kim Yongbin·2023년 8월 29일
0

코딩테스트

목록 보기
18/162

Problem

Solution

내 풀이

def solution(n):
    answer = 0
    p, q = 1, 0
    while (n - q) / p >= 1:
        if (n - q) % p == 0:
            answer += 1
            
        q += p
        p += 1
    
    return answer

자연수 n을 p개의 연속된 숫자의 합으로 표현하면

n=pa+(1+2+...+p1)n = p*a + (1+2+...+p-1)(a≥ 1)이 된다.

따라서 q = 1 + 2 + … p-1이라 했을 때 n-q가 p로 나누어 떨어질 때 p개의 연속된 숫자의 합으로 나타낼 수 있다.

Reference

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

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글