[프로그래머스] 숫자의 표현
2020. 4. 2. 13:31ㆍ프로그래머스/LEVEL 2
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n; i++){
int temp = 0;
for(int j=i; j<=n; j++){
temp += j;
if(temp == n){
answer ++;
break;
}
if(n<temp){
break;
}
}
}
return answer;
}
}
----------------------------------------------------------------------------------------------------------------------------
2020.06.30
class Solution {
public int solution(int n) {
int answer = 1;
for(int i=1; i<n; i++){
int sum = i;
if(2*i+1>n){
break;
}
for(int j=i+1; j<n; j++){
if(sum+j == n){
answer++;
break;
}else if(sum+j>n){
break;
}else{
sum+=j;
}
}
}
return answer;
}
}
1. 전에 풀었던건 숫자가 커지면 복잡성이 커진다.
2. i에 대하여 다음 숫자와 더한것이 n보다 커지는 순간 그다음 i들도 모두 불가능해지므로 2*i+1>n일경우 break하도록 추가하였다.
'프로그래머스 > LEVEL 2' 카테고리의 다른 글
[프로그래머스] JadenCase 문자열 만들기 (0) | 2020.04.04 |
---|---|
[프로그래머스] 행렬의 곱셈 (0) | 2020.04.03 |
[프로그래머스] 124나라의 숫자 (0) | 2020.04.02 |
[프로그래머스] 위장 (0) | 2020.04.01 |
[프로그래머스] 카펫 (0) | 2020.03.31 |