728x90
프로그래머스 | Lv2. 숫자의 표현 (Java)
문제 풀이
- n 은 10000 이하의 자연수 이므로, 이중 for문을 돌려도 시간 초과가 나지 않는다.
- 바깥 for문으로 i = 1 ~ n까지 돌면서 연속된 자연수의 시작값을 세팅했다.
- 안쪽 for문은 j = i+1 ~ n 까지 돌면서 tmp에 각 i 부터 시작되는 연속된 합을 더하다가
- - 만약 tmp == 15 가 될 경우 cnt++, break;
- - 만약 tmp > 15 초과할 경우 그냥 break; 되도록 조건을 걸어두었다.
코드
class Solution {
public int solution(int n) {
int cnt= 1;
for(int i =1; i<=n; i++){
int tmp = i;
for(int j=i+1; j<=n; j++){
tmp += j;
if(tmp == n) {
cnt++;
break;
}else if(tmp > n) {
break;
}
}
}
return cnt;
}
}
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.2 타겟 넘버 문제 - DFS 문풀 (Java) (0) | 2023.06.29 |
---|---|
프로그래머스 | LV.2 크기가 작은 부분 문자열 (Java) (0) | 2023.05.22 |
프로그래머스 | Lv.2 다음 큰 숫자 (Java) (0) | 2023.05.22 |
프로그래머스 | Lv2. 최솟값 만들기 (Java) (0) | 2023.05.20 |
프로그래머스 | Lv.1 부족한 금액 계산(Java) & 문자열 다루기 (Java) (0) | 2023.05.20 |