본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 2

[JAVA] 프로그래머스 Lv.2 : 숫자의 표현

by 새우버거♬ 2021. 6. 9.

 

예제:

 

n result
15 4

 


Solution #1

class Solution {
    public int solution(int n) {
        int answer = 0;

        int index = 1, sum = 0;

        while (index <= n) {
            for (int i = index; i <= n; i++) {
                sum += i;
                if (sum == n) answer++;
            }
            sum = 0;
            index++;
        }

        return answer;
    }
}

 

Result #1

💡 while 반복문과 for 반복문을 사용해서 풀었다. 효율성 테스트에서 시간 초과가 나왔다.

혹시 예외 조건에 break; 를 추가해야 했나?


Solution #2

class Solution {
    public int solution(int n) {
        int answer = 0;

        int index = 1, sum = 0;

        while (index <= n) {
            for (int i = index; i <= n; i++) {
                sum += i;
                if (sum == n) answer++;
                else if (sum > n) break;
            }
            sum = 0;
            index++;
        }

        return answer;
    }
}

 

Result #2

💡 break; 추가하니 통과

반복문을 사용할 때는 예외 처리를 하느냐에 따라 효율성이 많이 달라진다는 것을 알게 되었다.

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스