본문 바로가기 메뉴 바로가기

CodeAngie

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

CodeAngie

검색하기 폼
  • 전체보기 (162)
    • Study (148)
      • Algorithm (8)
      • Coding Test (50)
      • Java (5)
      • FastAPI (2)
      • Docker (8)
      • FastCampus (42)
      • Codetree (9)
      • Ect (23)
    • ML (9)
      • Transformer (5)
      • RecSys (0)
      • Ect (4)

1806 (1)
[백준 BOJ / Python] 1806번 부분합 Prefix Sum (누적합)

문제 10000 이하의 자연수로 이루어진 n 길이의 수열에서 부분합이 s 이상이 되는 것 중 최소 길이를 구하는 문제이다. 풀이 이 문제는 1차원 배열의 부분합을 구하여 크기를 비교하고 최소 길이를 구하면 된다. 누적합을 구하면서 해당 위치 이전까지의 부분합 중 s 이상인 경우, 최소 길이를 업데이트한다. 예를 들어 4번째 칸까지 누적합을 구했을 때, s 가 7이라면 최소 길이는 3이 된다. 알고리즘 누적합을 담을 dp list를 n+1 길이로 생성한다. 최소 길이를 담을 ans 변수를 생성한다. for 문을 n 번 돌면서 누적합을 계산한다. 최소 길이에 맞춰 부분합을 계산하고 만약 부분합이 s 보다 작다면 이후에도 더 작을 것임으로 중단해준다. 만약 s보다 크다면 최소 길이를 줄일 수 있다는 의미임으로..

Study/Coding Test 2023. 2. 15.
이전 1 다음
이전 다음
«   2025/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
TAG
  • kruskal
  • 파이썬
  • 구현
  • java
  • 프로그래머스
  • 티스토리챌린지
  • 오블완
  • 그리디
  • DP
  • 트랜스포머
  • greedy
  • python
  • 코드트리
  • Transformer
  • 백준
  • 최소신장트리
  • dfs
  • Django
  • 코딩테스트
  • 누적합
  • disjoint set
  • COLAB
  • 분리집합
  • BFS
  • 알고리즘
  • docker
  • lis
  • MySQL
  • pytorch
  • boj
more
링크

Blog is powered by Tistory / Designed by Tistory

티스토리툴바