백준 2018번(수들의 합 5)

김경욱·2025년 10월 12일

백준

목록 보기
97/121

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import java.net.Inet4Address;
import java.util.*;

import static java.util.Collections.*;

public class Main {

public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    int value = Integer.parseInt(br.readLine());

    int count = 1;



    int M = (int) Math.ceil(value / 2);

    int start_Point = 1;
    int end_Point = 1;
    int sum = 0;

    while(start_Point<=M)
    {
        if (sum == value)
        {
            count++;
            sum =0; //
            start_Point++; // start = 2
            end_Point = start_Point; // end = 2
        }

        else if (sum > value)
        {
            sum =0;
            start_Point++;
            end_Point = start_Point;
        }

        else{
            sum+=end_Point; // sum = 4 9 15
            end_Point++; // end = 5 6


        }


    }

    System.out.println(count);












}
}

투 포인터를 이용하여 시작 지점과 끝 지점을 정한 후 sum 값이 구하는 값보다 커지면 sum을 초기화한 후 시작 지점을 1 증가한 후 다시 구하는 방식이였다. 신기했다.

0개의 댓글