본문 바로가기
Language/알고리즘 문제풀이

프로그래머스 숫자의 표현(Java)

by wakestand 2019. 9. 17.
반응형

사이트명 : 프로그래머스(Programmers)

문제명 : 숫자의 표현

언어 : 자바(Java)

 

문제만 보면 뭔가 어려워 보이는데

설명을 어렵게 보이게 해놔서 어려운거지

 

실상은 간단하다

1부터 n까지 다 더해봐서

n을 만들 수 있는 경우가 몇개나 되냐는 것이다

1+2+3+4+5 이런 식으로 15를 만들 수 있는데

다음에는 2부터 시작해서 15가 되나.. 이런 식으로 15까지 반복해주면 된다

 

내 풀이방법은 아래와 같은데

 

while문은 1부터 n까지 돌려주고

while 안에 for문은 while 증감값(j) 부터 시작해서 n까지 돌려주는데

이렇게 1+2+3+4+5... 식으로 더해서 n이 나오면 answer 갯수를 올려주고

n보다 커져버리면 break 시켜서 while을 반복한다

 

이렇게 돌리고 돌려서 while문이 끝나면

n이 나온 횟수가 모두 answer 안에 들어가게 된다 

 

마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다

 

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

	      while(j <= n) {
	    	  
	    	  for(int i = j; i<=n; i++) {
	    		  counter = counter + i;
	    		  if(counter == n) {
	    			  answer++;
	    		  } else if(counter > n) {
	    			  counter = 0;
	    			  break;
	    		  }
	    	  }
	    	  
	    	  j++;
	      }
	      
	      return answer;
  }
}
반응형

댓글