본문 바로가기

⏳ 알고리즘/python 알고리즘 문제 풀이

알고리즘 문제 - LV3. 숫자의 표현

문제

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

 

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

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

programmers.co.kr

 

코드

1) 배열 슬라이싱 이용

import math

def solution(n):
    result = 1 #result에 n = n인 경우 미리 포함
    numbers = []
    mid = math.ceil(n/2)
    
    for num in range(1,n+1):
        numbers.append(num)

    for i in range(mid):
        for j in range(i+1,mid+1):
            if sum(numbers[i:j]) == n:
                result += 1
                print(numbers[i:j], result)
            if sum(numbers[i:j]) > n:
                break
    
    return result