숫자의 표현

유태형·2022년 2월 9일
0

문제

문제 분석

연속된 자연수만 사용하는 것이 핵심이다. 각 갯수는 한 조합 밖에 구성 될 수 밖에 없을 것 같다.
연속된 자연수로 구성될 수 있는 갯수가 몇 개인가와 같은 말인 것 같다.




풀이

만약 연속된 자연수로 구성이 될 수 있는 갯수라면 적은 동안 더하다가 마지막에 합이 일치하고, 그렇지 않으면 더 큰 수가 될것이다.

		while (true){
           add+=inum; //합에 반영

           if(add==n){ //n과 일치
               answer++; //갯수 +1
               break;
           }else if(add>n){ //더 커지면 다음 기준
               break;
           }
           inum++; //다음 자연수
       }

if(add==n)이 정확히 연속된 자연수들의 합과 예시값이 일치하는 경우이다. 한 종류의 조합 = 한 종류의 개수와 1:1대응을 보장 하므로, 시작 기준 수를 다음 수로 넘어가도 된다.




코드

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

        for(int i=1;i<=n;i++){
            int inum=i; //기준 초기화
            int add =0; //합 초기화
            while (true){
                add+=inum; //합에 반영

                if(add==n){ //n과 일치
                    answer++; //갯수 +1
                    break;
                }else if(add>n){ //더 커지면 다음 기준
                    break;
                }
                inum++; //다음 자연수
            }
        }
        return answer;
    }
}



GitHub

https://github.com/ds02168/Study_Algorithm/blob/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/%EC%9E%90%EB%B0%94/Level2/%EC%88%AB%EC%9E%90%EC%9D%98%ED%91%9C%ED%98%84.java

profile
오늘도 내일도 화이팅!

0개의 댓글

관련 채용 정보