1. 숫자의 표현 (프로그래머스)

문제 설명

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 이하의 자연수 입니다.

입출력 예

nresult

15 4

입출력 예 설명

입출력 예#1
문제의 예시와 같습니다

 


해결 방법 : 등차수열 및 문제이해

이유 : 중간에 어디서 끊어야하는지 파악이 안되었음.

참고 자료 : ssungkang.tistory.com/entry/%EC%88%AB%EC%9E%90%EC%9D%98-%ED%91%9C%ED%98%84%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-level2

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

 

def solution(n):
 
    answer = 0 # 구하고자하는 값 answer을 0으로 초기화 
 
 
 
    for i in range(1, n + 1): # 어떤 자연수 부터 시작할지 결정하는 반복문
 
        sum = 0 #총합을 초기화, 초기화하는 위치가 중요하다.
 
        for j in range(i, n + 1): #i부터 시작해서 어디까지 더할지 결정하는 반복문
 
            sum = sum + j  #sum에 j값을 계속 더 해줘서 총합을 구해준다.
 
            if sum == n:  # 그 총합이 구하고자하는 n 값이 되면
 
                answer = answer + 1 #answer(연속 되는 자연수들도 몇 번 표현할 수 있는지)를 1올려주고
 
                break  #한 번 찾았으면 그 이 후에는 더 나올 수 없으므로 반복문을 깨준다.
 
            if sum > n:
 
                break #같은 원리로 수가 더 커져버리면 찾을 가능성이 없으므로 반복문을 깨준다.
 
 
 
    return answer

 


+ Recent posts