#include <string> #include <vector> using namespace std; int solution(int n) { int answer = 0; int sum=0; for(int i=1,j=1;i <=n;i++) { sum += i; if(sum >= n){ while(sum > n) sum -= j++; if(sum == n) answer++; } } return answer; }
- 이중 for문으로 차례차례 더하는 방법을 통해 테스트 코드는 돌아가지만, 효율성 검사에서 탈락하게된다ㅠㅠ
- 연속된 숫자들을 더하다가 크거나 같아질 때 값을 빼면서 균형을 맞춰주는게 key point!