https://www.acmicpc.net/problem/2018
이중 for문
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int answer = 0;
for(int i=1; i<=n; i++){
int sum = 0;
for(int j=i; j<=n; j++){
sum+=j;
if(sum >n) break;
else if(sum == n){
answer++;
break;
}
}
}
System.out.println(answer);
}
}
투포인터
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int answer = 0;
int start = 1;
int end = 1;
int sum = 1;
while(start <= end){
if(sum == n) answer++;
if(sum < n){
end++;
sum+=end;
}
else if(sum >= n){
sum -= start;
start++;
}
}
System.out.println(answer);
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] 알고리즘 : two pointers - 연속된 자연수의 합 (0) | 2022.06.26 |
---|---|
[JAVA] 백준 12847번- 꿀 아르바이트 (0) | 2022.06.26 |
[JAVA] 백준 1940번- 주몽 (0) | 2022.06.22 |
[JAVA] 알고리즘 : Sliding window&two pointers - 연속부분수열 (0) | 2022.06.21 |
[JAVA] 알고리즘 : Sliding window - 최대 매출 (0) | 2022.06.21 |