ffinn92 / Keep-at-solve-it

꾸준히 알고리즘 풀기 위한 스터디 저장소입니다.
2 stars 3 forks source link

[220707][반스][인프런](3-5) 연속된 자연수의 합 #87

Closed ffinn92 closed 2 years ago

ffinn92 commented 2 years ago

📌 문제

⭐️ 아이디어

🤔 고민한 내용

💪 새롭게 배운 내용

🆘 이해가 어려운 내용

❌ 해결하지 못한 이유

✅ 본인 풀이

🏋️‍♀️ 시도횟수 : 2회 | ⏱ 걸린시간 : 152ms | 💾 메모리 : 27MB

import java.io.IOException;
import java.util.Scanner;

public class Main {
    public int solution(int[] numbers, int natrual) {
        int p1 = 0;
        int p2;
        int sum = 0;
        int count = 0;

        sum += numbers[p1];
        for (int i = 1; i < numbers.length; i++) {
            p2 = i;
            sum += numbers[p2];

            if (sum == natrual) {
                count++;
            }
            while (sum >= natrual) {
                sum -= numbers[p1];
                p1++;
                if (sum == natrual) {
                    count++;
                }
            }
        }

        return count;
    }

    public static void main(String[] args) throws IOException {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);

        int natural = sc.nextInt();
        int arr = natural / 2 + 1;
        int[] numbers = new int[arr];

        for (int i = 0, j = 1; i < arr; i++, j++) {
            numbers[i] = j;
        }

        int result = T.solution(numbers, natural);
        System.out.println(result);

    }
}

참고한 자료