알고리즘
[백준] 2018번: 수들의 합 5 - java
육빔
2024. 7. 10. 14:16
728x90
https://www.acmicpc.net/problem/2018
투 포인터 문제는 처음 풀어본다. 알고리즘이 기가막힌것같다..
앞에서 시작하는 포인터를 2개를 두고 while문으로 끝까지 가면서 포인터를 줄이고, 늘리고 count를 세며 앞으로 나아가는게 핵심인 알고리즘이다.
구현은 아래를 보자
import java.util.Scanner;
public class App {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int count = 1;
int start = 1;
int end = 1;
int sum = 1;
while (end != N) {
if(sum==N){
count++; end++; sum = sum + end;
}else if(sum>N){
sum = sum - start;
start++;
}else{
end++; sum = sum + end;
}
}
System.out.println(count);
}
}
완성
728x90