본문 바로가기

Computer Science/알고리즘 문제풀이

[알고리즘 문제풀이] #2 숫자의 표현 [JAVA]

#2 숫자의 표현

 

문제: https://programmers.co.kr/learn/courses/30/lessons/12924

 

 

 

 

1. 문제 설명

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.

 

 

2. 나의코드

 

class Solution {
  public int solution(int n) {
      int answer = 0;
      int sum=0;
      for(int i = 1; i <= n/2 ;i++) {
          for(int j =i; j < n ;j++) {
              sum+=j;
              if(sum == n){
                  answer++;
                  break;
              }
              else if(sum > n)
                  break;
          }
          sum=0;
      }
      answer++;
      return answer;
  }
}

 

 

 

3. 보완

 

딱히 어려운 것은 없었지만, 중첩된 반복문에 좀 더 익숙해져야할 것 같다.

또한, 수의 덧셈이나 일정한 규칙을 다루는 알고리즘의 경우에는 주어진 매개변수의 1/2 정도만 계산하여

효율성을 높이는 경우가 많다.