#유형 : 수학

#난이도 : LV2

# 수학적으로 접근하여 풀 수 있을거같으나.. 짱구를 굴려봐도 떠오르지 않아 반복문으로 처리하였다.

굳이 더 효율적인 조건을 두려면 answer = 1로 시작하고,  i<=N 이 아닌 Math.sqrt등으로 사용하여 반복문을 줄일 수 있을것 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
    }
}
cs

+ Recent posts