<나의풀이>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class Solution { public int solution(int n) { int answer = 1; for(int i=1; i<=n/2; i++){ int j=i; int sum=0; while(true){ sum+=j++; if(sum==n){ answer++; break; }else if(sum>n){ break; } } } return answer; } } | cs |
<다른사람풀이>
1 2 3 4 5 6 7 8 9 10 | public int expressions(int num) { int answer = 0; for (int i = 1; i <= num; i += 2) { if (num % i == 0) { answer++; } } return answer; } | cs |
주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 정리를 이용한 풀이