반응형
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int start = 1;
int end = 1;
int num = 1;
int ans = 0;
while(start<=end) {
if(num==n) {
end++;
num=num+end-start;
start++;
ans++;
}
else if(num<n) {
end++;
num+=end;
}
else {
num-=start;
start++;
}
}
System.out.println(ans);
}
설명
투포인터를 사용해서 풀었다.
start와 end 포인터를 사용하여 만약 합이 N보다 크면 전체합에서 start를 뺴준 뒤 start 값을 1 증가시킨다.
합이 N보다 작으면 end를 1 증가시킨 뒤 해당 값을 전체합에 더해준다.
만약 N과 같아진다면 ans 값을 1 증가시킨다.
반응형
'알고리즘 > 투포인터' 카테고리의 다른 글
[백준][Python] 2470번 두 용액 (0) | 2023.03.02 |
---|---|
[백준][Python] 21921번 블로그 (0) | 2023.02.28 |
[백준][Python] 20922번 겹치는 건 싫어 (0) | 2022.06.30 |
댓글