Finn은 요즘 수학 공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러 개라는 사실을 알게 되었습니다. 예를 들어 15는 다음과 같이 4가지로 표현할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수
n
이 매개 변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해 주세요.
n
은 10,000 이하의 자연수 입니다.
n | result |
---|---|
15 | 4 |
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++){
sum += j;
if(sum == n){
answer++;
break;
} else if(sum > n)
break;
}
}
return answer;
}
}
💡 자연수 1부터 시작해
n
까지의 반복하는 for문을 하나 만들고i
부터 시작하는 반복문을 하나 만들어i
부터 차례대로 수를 sum에 더하도록 한다sum
이n
과 같아졌다면answer
을 1만큼 더해 주고 반복문을 탈출하고 다음 반복을 이어갈 수 있게 한다 만약sum
이n
보다 크다면n
을 만들 수 없다는 의미이므로 바로 반복문을 탈출해 다음 반복을 이어갈 수 있게 하였다
효율성 테스트 때문에 이중 반복문 통과될 수 있을까 조마조마했는데 다행히 통과가 되었다 🤩
즐겁게 읽었습니다. 유용한 정보 감사합니다.