알고리즘/프로그래머스

프로그래머스 Lv.2) 숫자의 표현

Zin0_0 2020. 5. 21. 16:51
반응형

숫자의 표현

 

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

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

programmers.co.kr

풀이

이 문제도 삽질을 조금 한것같다. 수식을 통해 풀어야한다는 압박감에 이것 저것 시도해본 문제였다.

이분탐색을 통해서 풀어보려고도 하고, 점화식을 세워서 풀어보려고도 했는데 코드에서 보시면 알 수 있듯 모두 실패했다..

시간초과거나 정답이 아닌 경우가 많았기 때문이다. 이 문제도 질문하기 탭을 통해 깨달음을 얻었다.

그냥 완전탐색을 하면 된다는 사실을 알고 허무했다.

n이 최대 10000인데 완전탐색하면 효율이 안좋지 않나 생각이 발목을 잡은 것이다.

이 문제는 탐색을 하면서 이어지는 숫자의 합과 답이 같은지 세어주면 된다.

 

코드

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) {
                    if(sum==n) {
                        answer++;
                    }
                    break;
                }
            }
        }
        
        return answer;
    }
}
반응형