[백준 2018] 수들의 합 5(투 포인터)

📝 문제

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

 

2018번: 수들의 합 5

어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한

www.acmicpc.net

 

💻 코드

package org.kyhslam.DoItAlgorithm.ch02;

import java.util.Scanner;

public class p2018 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        int startIndex = 1;
        int endIndex = 1;
        int count = 1;
        int sum = 1;

        while (endIndex != N) {
            if (sum == N) {
                endIndex++;
                count++;
                sum = sum + endIndex;
            } else if (sum > N) {
                sum = sum - startIndex;
                startIndex++;
            } else if (sum < N) {
                endIndex++;
                sum = sum + endIndex;
            }
        }

        System.out.println("count = " + count);
    }
}

댓글

Designed by JB FACTORY