하루에 한 문제

[프로그래머스] 숫자의 표현 -Java 본문

알고리즘/프로그래머스

[프로그래머스] 숫자의 표현 -Java

dkwjdi 2021. 1. 19. 09:22

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

 

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

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

programmers.co.kr

class Solution {
	    public int solution(int n) {
	        int answer = 0;
	        int sum=0;
	        
	        for(int i=1; i<=n/2; i++) { //절반까지 
	        	sum=i;
	        	int j=i;
	        	while(true) {
	        		j++;
	        		sum+=j;
	        		if(sum==n) {
	        			answer++;
	        			break;
	        		}
	        		if(sum>n) break;
	        	}
	        }
	        return answer+1;
	    }
	}

소요시간 : 8분

 

완전탐색에서 가지치기를 해서 풀었습니다.

 

우선 i는 1부터 n의 절반까지만 돌렸습니다.

 

만약 n의절반보다 숫자가 크다면 아무리 더해도 n보다 크기때문입니다.

 

그리고 i를 다음숫자와 계속더해서 n과 같다면 answer을 늘려주고, 더 크다면 break를 통해 while문을 끝냈습니다.

Comments