코딩테스트/프로그래머스

[프로그래머스] [Level 2] 숫자의 표현

박소민 2022. 4. 26. 18:05
숫자의 표현
 

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

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

programmers.co.kr

 

  • 내 풀이
    • 뒤에서부터 더해서 n값 넘어가면 -1한 값에서 다시 계산
def solution(n):
    start=n+1
    sum=0
    answer = 0
    while start>=1:
        for i in range(start,0,-1):
            if sum+i<n:
                sum+=i
                continue
            elif sum+i==n:
                answer+=1
            sum=0
            break
        sum=0
        start-=1     
    return answer
print(solution(15))
print(solution(6))
print(solution(5))
#결과
4 
2
2

 

  • 다른 사람 풀이
    • 수학 공식
    • n을 1부터 n까지의 홀수로 나누었을 때 0이되는 값의 개수
    • = 자연수 n을 연속한 자연수들로 표현 하는 방법의 개수(문제에서 요구한 값)
def solution(n):
	return len([i for i in range(1,n+1,2) if n%i==0])