하루에 한 문제
[프로그래머스] 숫자의 표현 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/12924
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문을 끝냈습니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 월간 코드 챌린지 시즌1]이진 변환 반복하기 (0) | 2021.01.22 |
---|---|
[프로그래머스 2020카카오 인턴쉽] 수식 최대화 -Java (0) | 2021.01.21 |
[프로그래머스] 기능개발 -Java (1) | 2021.01.18 |
[프로그래머스] 피보나치 수 -Java (0) | 2021.01.17 |
[프로그래머스 Summer/Winter Coding(~2018)]스킬트리 -Java (1) | 2021.01.15 |
Comments