https://www.acmicpc.net/problem/2018
문제

풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int start=0, end=0;
int sum=0, cnt=0;
while(start<=N) {
while(++end<=N) {
sum += end;
if(sum>=N) {
if(sum==N) cnt++;
break;
}
}
while(++start<=N) {
sum -= start;
if(sum<=N) {
if(sum==N) cnt++;
break;
}
}
}
System.out.println(cnt);
}
}
탐색 알고리즘을 사용하는 것보다 투 포인터를 사용하여 문제를 해결하는 것이 효율적이라고 생각하여 이를 이용해 진행하였다.
'문제 풀이 > 백준' 카테고리의 다른 글
| [백준] 12891번. DNA 비밀번호 (1) | 2024.01.30 |
|---|---|
| [백준] 1940번. 주몽 (JAVA) (2) | 2024.01.28 |
| [백준] 11659번. 구간 합 구하기 4 (JAVA) (1) | 2024.01.28 |
| [백준] 1546번. 평균 (JAVA) (0) | 2024.01.28 |
| [백준] 11720번. 숫자의 합(JAVA) (1) | 2024.01.28 |