[JAVA]

[프로그래머스 JAVA] 숫자의 표현 문제 풀이

미냠 2023. 11. 18. 12:48
반응형

 

연속되는 수를 더해서 입력받은 수가 되는 케이스의 갯수를 구하는 문제이다.

 

만약 15를 입력받았다면 

연속되는 숫자 중 합이 15가 되는 케이스의 갯수를 추출하는 것이다. 

 

먼저 1부터 시작되어야 하기 때문에 1부터 15까지 반복문을 돌리면서

반복문 안에 반복문을 하나 더 추가하여 합산된 숫자를 확인하면 된다. 

 

내부 반복문의 시작은 하나씩 증가해야 하며 

더한 총 결과 값이 15이면 추출할 변수에 + 1 한 후, 반복문 탈출 break; 

더한 총 결과 값이 15 이상이면 바로 반복문 탈출 break; 를 해주면 된다.

 

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;
                // System.out.println(i);
                // 합이 15인 경우 count + 1, break
                if (sum == n) {
                    // System.out.println(sum);
                    answer += 1;
                    break;
                }
                // 합이 15보다 큰 경우 break
                else if (sum > n) {
                    // System.out.println(sum);
                    break;
                } 
            }            
        }   
        return answer;
    }
}

 

 

문제 난이도는 낮은 편인 거 같긴 하다. 

처음엔 while 문을 사용해서 했다가 효율성에서 통과되지 못해서 for 문으로 변경해주었다. 

 

반응형