- 내 방법 풀이
- 자연수 n을 연속한 자연수로 표현하는 방법의 갯수를 표현 하는 방법을 구하는 문제. '연속'이 핵심 힌트 였다.
- 연속한 자연수를 만들기 위해 반복문을 사용하였다. 첫번째 숫자를 정하는 반복문 안에 더해줄 숫자를 정하는 이중 반복문을 작성했다. 연속한 자연수를 더해주다가 n과 같아지면 answer 증가 또는 초과되면 반복문을 종료하였다.
- 최근 풀은 문제들 중에 평이한 난이도의 문제였다.
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
int sum = 0;
for (int j = i; j <= n; j++) {
sum += j;
if (sum == n) {
answer++;
break;
} else if (sum>n) {
break;
}
}
}
return answer;
}
}
- 다른 사람 방법 풀이
- 정수론으로 푼 풀이. 설명으로는 주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약속의 개수와 같다고 한다.
- 다른 방법들은 나의 풀이와 비슷했다.
import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i += 2)
if (n % i == 0)
answer++;
return answer;
}
}