File tree Expand file tree Collapse file tree 2 files changed +62
-0
lines changed
code_place/[4016] 수열의 연속합 Expand file tree Collapse file tree 2 files changed +62
-0
lines changed Original file line number Diff line number Diff line change 1+ # [ 4016] 수열의 연속합
2+ ### 채점 결과
3+ Accepted
4+ ### 제출 일자
5+ 2026년 03월 30일 15:46:09
6+ ### 성능 요약[ 추후 구현 예정]
7+ - 메모리: N/A KB
8+ - 시간: N/A ms
9+ ---
10+ ### 문제 링크
11+ https://code.pusan.ac.kr/problem/4016
12+ ### 난이도
13+ 보통
14+ ### 문제 설명
15+ 개의 숫자가 오름차순으로 정렬된 수열이 있다.숫자이 주어질 때, 수열의 숫자를 연속적으로 한 번씩 더하여 숫자을 만들 수 있는 경우의 수를 출력하라.
16+ ### 입력
17+ 첫 번째 줄에 수열의 크기과 숫자이 주어진다.(,)두 번째 줄에 수열의 숫자개가 공백으로 구분되어 주어진다.(단, 수열의 숫자는보다 작거나 같은 자연수)
18+ ### 출력
19+ 수열의 숫자를 연속적으로 한 번씩 더해서 숫자을 만들 수 있는 경우의 수를 출력하시오.
20+ ### 예제 입력/출력
21+ ** 예제 입력 1**
22+ ```
23+ 5 6
24+ 1 2 3 3 6
25+ ```
26+ ** 예제 출력 1**
27+ ```
28+ 3
29+ ```
30+ ** 예제 입력 2**
31+ ```
32+ 25 30
33+ 2 2 3 6 7 10 12 13 14 14 16 17 17 17 18 21 23 23 24 24 26 27 28 30 30
34+ ```
35+ ** 예제 출력 2**
36+ ```
37+ 4
38+ ```
39+ ### 힌트
40+ 1번 예시를 살펴보자.주어진 수열은 1 2 3 3 6이며은 6이다.6은 주어진 수열 중 1 + 2 + 3 의 연속된 수의 합으로 만들 수 있으며3 + 3으로도 만들 수 있고6으로도 만들 수 있다.따라서 경우의 수는 3이 된다.
41+
42+ ### 제약 사항
43+ - 시간 제한 1000ms
44+ - 메모리 제한 256mb
Original file line number Diff line number Diff line change 1+ N , M = map (int , input ().split ())
2+ nums = list (map (int , input ().split ()))
3+
4+
5+ cnt , right = 0 , 0
6+ cur_sum = 0
7+
8+ for left in range (N ):
9+ while cur_sum < M and right < N :
10+ cur_sum += nums [right ]
11+ right += 1
12+
13+ if cur_sum == M :
14+ cnt += 1
15+
16+ cur_sum -= nums [left ]
17+
18+ print (cnt )
You can’t perform that action at this time.
0 commit comments