Skip to content

Commit eae2344

Browse files
committed
2026년 03월 30일 15:46:09
1 parent cd7c67e commit eae2344

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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)

0 commit comments

Comments
 (0)