[백준/python] 1806번 부분합

2023. 1. 22. 18:25· Koala - 9기/코딩테스트 준비 스터디
목차
  1. 코드
  2. 풀이

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

 

1806번: 부분합

첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다.

www.acmicpc.net

 

코드

from itertools import accumulate
from collections import deque

input = __import__('sys').stdin.readline
n, s = map(int, input().split())
li = list(accumulate(list(map(int, input().split()))))
li = deque(li)
li.appendleft(0)
mn = float('inf')
l, r = 0, 1

while r <= n:
    if li[r] - li[l] >= s and l < r:
        mn = min(mn, r - l)
        l += 1
    else:
        r += 1

if mn == float('inf'): print(0)
else: print(mn)

 

풀이

주어진 수열의 부분합이 특정값이 넘을 때, 그중 가장 길이가 짧은 것의 길이를 찾으면 된다.

우선, 주어진 시간의 길이가 짧기 때문에 빠른 입력을 사용해준다.

그리고 나서 파이썬 자체에서 지원하는 누적합 라이브러리를 사용하면 코드의 길이를 줄일 수가 있다.

가장 짧은 길이의 누적합을 탐색하기 위해서는 투포인터 알고리즘을 활용하면 된다.

투포인터 알고리즘을 활용하기 위해서 deque 라이브러리를 불러와주고 최저값을 저장하는 mn 변수에 inf를 저장하여

최종값이 inf일 경우 0을 출력하고 그렇지 않을 경우 최소값을 그대로 출력해주면 된다.

저작자표시 (새창열림)

'Koala - 9기 > 코딩테스트 준비 스터디' 카테고리의 다른 글

[백준 / Python] 15038번 Lounge Lizards  (0) 2023.01.25
[백준/c++] 3027번 입국심사 (Binary Search)  (0) 2023.01.25
[백준/Java] 11722번 가장 긴 감소하는 부분 수열  (0) 2023.01.22
[python] 13732 - Falling apples  (0) 2023.01.22
[백준/c++] 16236번 아기상어  (0) 2023.01.20
  1. 코드
  2. 풀이
'Koala - 9기/코딩테스트 준비 스터디' 카테고리의 다른 글
  • [백준 / Python] 15038번 Lounge Lizards
  • [백준/c++] 3027번 입국심사 (Binary Search)
  • [백준/Java] 11722번 가장 긴 감소하는 부분 수열
  • [python] 13732 - Falling apples
KauKoala
KauKoala
항공대 알고리즘 동아리 Koala 🥰
Koala항공대 알고리즘 동아리 Koala 🥰
KauKoala
Koala
KauKoala
전체
오늘
어제
  • 분류 전체보기 (1889) N
    • 공지 게시판 (10)
    • 정보 게시판 (8)
    • Codeforce (15)
    • acm-icpc (6)
    • Koala - 1기 (16)
    • Koala - 2기 (111)
      • Programming Contest (1)
      • A반 (20)
      • B반 (39)
      • C반 (22)
      • 기초 강의 (18)
    • Koala - 3기 (10)
      • 기초 스터디 (7)
    • Koala - 4기 (67)
    • Koala - 5기 (144)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (68)
    • Koala - 6기 (102)
      • 기초 알고리즘 스터디 (75)
      • 코딩테스트 준비 스터디 (25)
      • 모의 테스트 스터디 (1)
    • Koala - 7기 (167)
      • 기초 알고리즘 스터디 (97)
      • 코딩테스트 준비 스터디 (68)
      • 모의 테스트 스터디 (1)
    • Koala - 8기 (44)
      • 기초 알고리즘 스터디 (32)
      • 코딩테스트 준비 스터디 (10)
      • 코드포스 버츄얼 스터디 (0)
      • 프로그래머스 LV2 스터디 (0)
    • Koala - 9기 (205)
      • 기초 알고리즘 스터디 (138)
      • 코딩테스트 준비 스터디 (64)
      • 모의테스트 준비 스터디 (1)
    • Koala - 10기 (117)
      • 기초 알고리즘 스터디 (30)
      • 코딩테스트 준비 스터디 (86)
      • 모의테스트 준비 스터디 (1)
    • Koala - 11기 (151)
      • 기초 알고리즘 스터디 (46)
      • 코딩테스트 준비 스터디 (104)
      • 모의테스트 준비 스터디 (1)
    • Koala - 12기 (86)
      • 기초 알고리즘 스터디 (31)
      • 코딩테스트 준비 스터디 (55)
    • Koala - 13기 (119)
      • 기초 알고리즘 스터디 (52)
      • 코딩테스트 준비 스터디 (67)
    • Koala - 14기 (116)
      • 기초 알고리즘 스터디 (39)
      • 코딩테스트 준비 스터디 (77)
    • Koala - 15기 (138)
      • 기초 알고리즘 스터디 (73)
      • 코딩테스트 준비 스터디 (65)
    • Koala - 16기 (47)
      • 코딩테스트 기초 스터디 (16)
      • 코딩테스트 심화 스터디 (31)
    • Koala - 17기 (62)
      • 코딩테스트 기초 스터디 (15)
      • 코딩테스트 심화 스터디 (47)
    • Koala - 18기 (31)
      • 코딩테스트 기초 스터디 (11)
      • 코딩테스트 심화 스터디 (20)
    • Koala - 19기 (43) N
      • 코딩테스트 기초 스터디 (7)
      • 코딩테스트 심화 스터디 (36) N
    • Koala - 20기 (0)
      • 코딩테스트 기초 스터디 (0)
      • 코딩테스트 심화 스터디 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 🐨항공대 알고리즘 학회 Koala 3기 모집
  • 🐨항공대 알고리즘 학회 Koala 2기 모집
  • 소모임 소개

인기 글

태그

  • 백준
  • dfs
  • BFS
  • 백트래킹
  • C++
  • dp
  • BOJ
  • 파이썬

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
KauKoala
[백준/python] 1806번 부분합
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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