백준 1806번 부분합 : 마포 코딩박
문제
10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오.
문제풀이
(1) (코드: 7)
포인터 두개 lo, hi 에 대해 ' lo이상 hi미만 '의 값들의 합을 sum 이라고 설정하였습니다.(2) (코드: 17~24)
투포인터를 진행하는 while 문을 돌립니다.1. sum >= S 인 경우 ans를 최신화 하고 sum에서 lo의 값을 뺀 후 lo++
2. hi==N 인 경우 끝.
3. sum<S 인 경우 sum에 hi값을 추가 한 후 hi++