자바/프로그래머스

[Programmers/JAVA] 숫자의 표현

2가 2022. 11. 30. 16:12

 

내 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        int c=1;
        int count=0;
        while(c<=n/2) {
            int sum=0;
            for(int i=c; i<=n/2+1; i++) {
                sum+=i;
                if(sum==n) {
                    count++;
                    break;
                }else if(sum>n) {
                    break;
                }
            }
            c++;
        }
        answer=count+1;
        
        return answer;
    }
}

 

 

느낀점

 

주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 정리가 원래 있다고 한다..!!!!

이걸 먼저 알았으면 훨씬 쉬웠겠지...

많이 어려운 문제는 아니었으나, 지식이 없어서 머리가 고생한 스타일.