Programmers

[프로그래머스] 숫자의 표현 / Python

개발하는 사막여우 2021. 1. 20. 09:20
반응형

문제주소 :programmers.co.kr/learn/courses/30/lessons/12924

 

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

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

programmers.co.kr


<문제 설명>

더보기

문제 설명

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

  • 1 + 2 + 3 + 4 + 5 = 15
  • 4 + 5 + 6 = 15
  • 7 + 8 = 15
  • 15 = 15

자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.

제한사항

  • n은 10,000 이하의 자연수 입니다.

입출력 예

n                                                                        result
15 4

 

<풀이법>

▒ 한줄 개념: 등차수열 ▒ 

중학교(?) 때 배웠던 등차수열의 합 공식을 사용하면 되는 문제입니다. 

물론 저는 기억이 나지 않아 구글링해보았습니다.

등차수열의 합 공식

가우스는 이 공식을 초등학교 때 만들었다는데, 다시금 수학자의 위대함을 느끼고 가는 문제인 것 같습니다.

 

<코드(Python)>

def solution(n):
    answer = 0
    for i in range(1,n+1):
        for j in range(i,n+1):
            if (j+1-i)*(i+j)/2 == n:
                answer += 1
            elif (j+1-i)*(i+j)/2 > n:
                break
                    
    return answer

 

 

더 많은 코드 보기(GitHub) : github.com/dwkim-97/CodingTest

 

 

반응형