[백준] 1806 - 부분 합(Java)

2025. 3. 18. 09:04·Algorithm

문제 파악

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

풀이

제목과 짧은 문제 덕에 문제 파악은 쉬웠다🙃. 부분 합 문제는 항상 투 포인터로 풀게 되는 것 같다.

왼쪽 & 오른쪽 인덱스를 변수로 잡아준 다음 오른쪽 인덱스는 계속 증가시키며 연속합 변수에 누적하여 더해준다.

안쪽 루프에서 연속합의 값이 S 이상이라면 왼쪽 인덱스를 오른쪽으로 조정해 주도록 하자.
이때 왼-오 길이를 계산하여 기존 길이보다 짧다면 업데이트해 주면 된다.

코드

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

public class N1806 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tok = new StringTokenizer(br.readLine(), " ");
        int N = Integer.parseInt(tok.nextToken());
        int S = Integer.parseInt(tok.nextToken());
        tok = new StringTokenizer(br.readLine(), " ");
        int[] arr = new int[N];
        for (int i = 0; i < N; i++) {
            arr[i] = Integer.parseInt(tok.nextToken());
        }
        int left = 0, sum = 0, minLength = Integer.MAX_VALUE;
        for (int right = 0; right < arr.length; right++) {
            sum += arr[right];
            while (sum >= S) {
                minLength = Math.min(minLength, right - left + 1);
                sum -= arr[left++];
            }
        }
        System.out.println(minLength == Integer.MAX_VALUE ? 0 : minLength);
    }
}

 

저작자표시 비영리 변경금지 (새창열림)

'Algorithm' 카테고리의 다른 글

[백준] 1679 - 숫자놀이(Java)  (0) 2025.03.21
[프로그래머스] 388353 - 지게차와 크레인(Java)  (0) 2025.03.19
[백준] 1394 - 암호(Java)  (0) 2025.03.13
[백준] 11054 - 가장 긴 바이토닉 부분 수열(Java)  (0) 2025.03.11
[백준] 1375 - 나이(Java)  (0) 2025.02.20
'Algorithm' 카테고리의 다른 글
  • [백준] 1679 - 숫자놀이(Java)
  • [프로그래머스] 388353 - 지게차와 크레인(Java)
  • [백준] 1394 - 암호(Java)
  • [백준] 11054 - 가장 긴 바이토닉 부분 수열(Java)
코드파고
코드파고
  • 코드파고
    Digging Code
    코드파고
  • 전체
    오늘
    어제
    • 분류 전체보기 (99)
      • Memorization (12)
      • Spring (18)
      • Java (1)
      • Algorithm (40)
      • Server (2)
      • DB (0)
      • CS (0)
      • CI & CD (4)
      • Architecture (0)
      • Design Patterns (0)
      • Study (1)
      • Book (9)
        • DEV (7)
        • Non-DEV (0)
      • Infra (1)
        • Kafka (6)
        • AWS (4)
      • TroubleShooting (1)
        • Etc (1)
      • Tools (0)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Clean Code
    Spring독학
    Spring
    알고리즘
    SpringFramework
    architecture
    클린아키텍쳐
    clean architecture
    헥사고날아키텍쳐
    Spring Boot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
코드파고
[백준] 1806 - 부분 합(Java)
상단으로

티스토리툴바