본문 바로가기
  • 하루 끝에서
카테고리 없음

코딩테스트 연습 (숫자의 표현, java)

by Eevy 2023. 9. 3.

프로그래머스 코딩테스트 연습 ( 숫자의 표현, java)

class Solution {
    public int solution(int n) {
        int answer = 0;
        int i=1;
        double x;
        while(i<=n){
            x = ((2*n-Math.pow(i,2)+i)/(2*i));
            if(x>0 && (x%1)==0){
                answer++;
                i++;
            }
            else i++;
        }
        return answer;
    }
}

/* 연속된 숫자의 갯수가 i일때, x+(x+1)+(x+2) ... (X+i-1) 만큼 더한 수가 n이 나오면 result값이 증가한다.
따라서 위 식을 정리하면 i*x + {i(i-1)/2} = n 이라는 x에 대한 방정식을 세울 수 있고, 이 x(double)값을 1로 나눴을 때
나머지가 0이면 위 식을 만족하는 자연수 x가 존재한다고 볼 수 있다. */

댓글


Top