손영배 블로그 누구나 쉽게 이해하고 습득하기

프로그램어스 숫자의표현 Level2 본문

programmers

프로그램어스 숫자의표현 Level2

손영배 2019. 7. 3. 13:28
public static int solution(int n) {
		int answer = 0;

		for (int i = 1; i < n / 2 + 1; i++) {

			int sum = 0;
			for (int j = i; j < n / 2 + 1 && sum < n; j++) {

				sum += j;
				if (sum == n) {
					answer++;
					break;
				}
			}
		}

		return answer + 1;
	}

1. 약간의 규칙을 찾아야 했으며

2. 1,2,3,4,~~ 5000(10000/2) ~~~ 10000의 범위에서 

 

1,2,3,4,5,6,......4998 4999 5000를 아무리 반복하더라도 1억번이 채 걸리지 않기 때문에 그냥 이중 for으로 풀어야 한다는 생각을 햇어야 했다. 제길....!