문제 풀이/백준

[백준] 2018번. 수 들의 합5

27200 2024. 1. 28. 14:16

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);
    }

}

 

탐색 알고리즘을 사용하는 것보다 투 포인터를 사용하여 문제를 해결하는 것이 효율적이라고 생각하여 이를 이용해 진행하였다.