알고리즘/programmers

프로그래머스 레벨2 숫자의 표현 (JAVA)

dev-jo 2021. 7. 16. 00:43

오늘 도 풀었다 2레벨!

 

아마 내 생각에 레벨2 에서 제일 쉬운 문제일걸 같다.

 

오늘 풀 문제는

 

https://programmers.co.kr/learn/courses/30/lessons/12924?language=java 

 

코딩테스트 연습 - 숫자의 표현

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할

programmers.co.kr

 

숫자의 표현이다.

 

모든 코드는 GitHub 에 올려놓았다.

 

n을 연속한 자연수들로 표현 하는 방법 이다.

 

바로 코드를 보자

 

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

        int target = n / 2;

        int count = 1;
        while (count <= target) {
            int sum = 0;
            for(int i=count; i<=target+1; i++) {
                sum += i;
                if(sum == n) {
                    answer++;
                }
                if(sum > n) {
                    break;
                }
            }
            count++;
        }
        return answer + 1;
    }
}

 

문제에서의 15를 예시로 보면

 

1 2 3 4 5 = 15

 

이렇게 이어지는 수만된다..

 

나는 n 을 / 2 로 나눠주고 target까지만 반복문을 돌렸다.

 

n 이 20일경우  10 + 11 = 21

로 n초과기 때문에 절반까지만 돌리면된다.

 

끝..

 

이문제는 ..쓸게 없다.. 제일 쉬운 문제 같다..