문제 출처 - Programmers
문제는 여기
[풀이]
1. 시작부터 n까지 값을 계속 더한다.
2. 1. 에서 구한 값이 n과 같으면 결괏값을 증가시키고 반복을 종료한다.
3. 1.에서 구한 값이 n보다 크면 반복을 종료한다.
4. 1. ~ 3. 의 과정을 n만큼 반복한다.
[접근]
1. 시작점부터 숫자를 계속 더하면서 조건에 맞는 값일 경우 결괏값을 증가시켜주면 되겠다고 생각하였다.
[코드]
class Solution {
public int solution(int n) {
int answer = 0;
// 1부터 n까지 탐색
for (int i = 1; i <= n; i++) {
int sum = 0;
// i부터 n까지 탐색
for (int j = i; j <= n; j++) {
// sum에 값을 계속 더하기
sum += j;
// 결과가 나오면 횟수를 증가시키고
// 더 이상 나올 수 없으니까 break
if (sum == n) {
answer++;
break;
}
// 값을 넘어서면 탐색 필요 없으니까 break
else if (sum > n) {
break;
}
}
}
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 최솟값 만들기 (0) | 2022.04.24 |
---|---|
[프로그래머스] 영어 끝말잇기 (JAVA) (0) | 2022.04.22 |
[프로그래머스] 올바른 괄호 (JAVA) (0) | 2022.04.20 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2022.04.18 |
[프로그래머스] 행렬의 덧셈 (JAVA) (0) | 2022.04.17 |