[백준] 1806 부분합 java

2022. 3. 30. 12:47· Dev/PS

import java.io.*;
import java.util.*;

public class SubTotal {
    static BufferedReader br;
    static StringTokenizer st;
    static int[] nums;
    static int n, s, ans;

    public static void main(String[] args) throws IOException{
        input();
        solve();
        System.out.println(ans);
    }

    static void input() throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine());
        n = Integer.parseInt(st.nextToken());
        s = Integer.parseInt(st.nextToken());
        nums = new int[n];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < n; i++) {
            nums[i] = Integer.parseInt(st.nextToken());
        }
        ans = Integer.MAX_VALUE;
    }

    static void solve() {
        int start = 0;
        int end = 0;
        int sum = nums[start];

        while(end < n) {
           if(sum < s) {
               end++;
               //처음과 끝까지 모두 더했어도 작았다는 뜻이기 때문에 구할 수 없음. 따라서 0 출력
               if(end == n && start == 0) {
                   ans = 0;
                   return;
               }

               if(end < n) sum += nums[end];
               continue;
           }
           if(sum >= s) {
               ans = Math.min(ans, end-start+1);
               sum = sum-nums[start];
               start++;
               continue;
           }
        }
    }
}

투포인터 알고리즘을 사용한 기본적인 부분합 문제였다. 투포인터 알고리즘을 처음봐서 검색해서 공부 후 사용했으며 0이 되는 경우만 잘 처리해주면 된다.

저작자표시 (새창열림)

'Dev > PS' 카테고리의 다른 글

[백준] 1208 부분수열의 합 2 java  (0) 2022.04.12
[백준] 1261 알고스팟 java  (0) 2022.04.11
[백준] 2580 스도쿠 java  (0) 2022.03.27
[백준] 5014 스타트링크 java  (0) 2022.03.25
[백준] 3108 로고 java  (0) 2022.03.24
'Dev/PS' 카테고리의 다른 글
  • [백준] 1208 부분수열의 합 2 java
  • [백준] 1261 알고스팟 java
  • [백준] 2580 스도쿠 java
  • [백준] 5014 스타트링크 java
풋데브
풋데브
지속가능한 삶
풋데브
지루함에 익숙해지자
풋데브
전체
오늘
어제
  • 분류 전체보기 (90)
    • 일상 (4)
    • 후기 (2)
    • 운동 (0)
    • Dev (84)
      • PS (72)
      • CS (0)
      • Java (1)
      • Spring (0)
      • DB (4)
      • Test (2)
      • Web (0)
      • 트러블 슈팅 (2)
      • Etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 깊이우선탐색
  • 개발자
  • 완전탐색
  • 자료구조
  • java
  • 자바
  • bruteforce
  • 그래프
  • 백준
  • 코테
  • 알고리즘
  • 투포인터
  • 코딩테스트
  • combination
  • codingtest
  • graph
  • BOJ
  • 구현
  • 조합
  • BFS
  • 백엔드
  • 너비우선탐색
  • DP
  • 다이나믹프로그래밍
  • 백트래킹
  • Developer
  • Implement
  • programming
  • DFS
  • algorithm

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
풋데브
[백준] 1806 부분합 java
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.