프로그래머스(Python) 풀이/Level.2

프로그래머스(Python) 12924번 숫자의 표현 풀이

개발윗미 2022. 5. 6. 14:00

Python으로 구현한 12924번 숫자의 표현 문제 풀이입니다.

 

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

 

코딩테스트 연습 - 숫자의 표현

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할

programmers.co.kr


def solution(n) :
    answer = 0

    for i in range(1, n // 2 + 1) :
        sum_value = 0
        for j in range(i, n + 1) :
            sum_value += j
            if sum_value == n :
                answer += 1
                break
            elif sum_value > n :
                break

    return answer + 1

 

1. 이중 for문을 통해 연속한 자연수의 합을 구하며, 첫번째 반복문의 범위는 n의 반으로 설정하고, 두 번째 반복문의 범위는 i부터 n까지로 설정한다.

 

2. sum_value에 j를 더하고, sum_value가 n일 경우 answer을 1 증가시킨 후 break한다.

 

3. 만약 sum_value가 n보다 커진다면 break한다.

 

4. 최종적으로 answer 값을 반환할 때는 자기 자신을 포함해야하므로 1을 더하여 반환한다.