연속된 자연수
만 사용하는 것이 핵심이다. 각 갯수는 한 조합 밖에 구성 될 수 밖에 없을 것 같다.
연속된 자연수로 구성될 수 있는 갯수가 몇 개인가와 같은 말인 것 같다.
만약 연속된 자연수로 구성이 될 수 있는 갯수라면 적은 동안 더하다가 마지막에 합이 일치
하고, 그렇지 않으면 더 큰 수가 될것이다.
while (true){ add+=inum; //합에 반영 if(add==n){ //n과 일치 answer++; //갯수 +1 break; }else if(add>n){ //더 커지면 다음 기준 break; } inum++; //다음 자연수 }
if(add==n)
이 정확히 연속된 자연수들의 합과 예시값이 일치하는 경우이다. 한 종류의 조합
= 한 종류의 개수
와 1:1대응을 보장 하므로, 시작 기준 수를 다음 수로 넘어가도 된다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1;i<=n;i++){
int inum=i; //기준 초기화
int add =0; //합 초기화
while (true){
add+=inum; //합에 반영
if(add==n){ //n과 일치
answer++; //갯수 +1
break;
}else if(add>n){ //더 커지면 다음 기준
break;
}
inum++; //다음 자연수
}
}
return answer;
}
}