Skip to content

Commit d9a3f3f

Browse files
committed
[Silver III] Title: 수열, Time: 248 ms, Memory: 23472 KB -BaekjoonHub
1 parent 2810722 commit d9a3f3f

2 files changed

Lines changed: 18 additions & 28 deletions

File tree

백준/Silver/2559. 수열/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
### 성능 요약
66

7-
메모리: 24156 KB, 시간: 252 ms
7+
메모리: 23472 KB, 시간: 248 ms
88

99
### 분류
1010

11-
누적 합, 슬라이딩 윈도우, 두 포인터
11+
누적 합, 두 포인터, 슬라이딩 윈도우
1212

1313
### 제출 일자
1414

15-
2024년 8월 27일 15:46:01
15+
2025년 12월 8일 01:22:58
1616

1717
### 문제 설명
1818

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,25 @@
1-
import java.io.BufferedReader;
2-
import java.io.InputStreamReader;
3-
import java.util.Arrays;
4-
import java.util.StringTokenizer;
1+
import java.io.*;
2+
import java.util.*;
53

64
public class Main {
7-
static int n, k;
8-
static int[] s;
9-
static StringTokenizer st;
10-
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
5+
116
public static void main(String[] args) throws Exception{
12-
input();
13-
System.out.println(mintemp());
14-
}
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
StringTokenizer st = new StringTokenizer(br.readLine());
159

16-
public static int mintemp(){
17-
int ans = -20000000;
18-
for (int i = n; -1 < i - k; i--) {
19-
ans = Math.max(ans, s[i] - s[i - k]);
20-
}
21-
return ans;
22-
}
10+
int n, m, ans;
11+
int[] sum;
2312

24-
public static void input() throws Exception{
25-
st = new StringTokenizer(br.readLine());
2613
n = Integer.parseInt(st.nextToken());
27-
k = Integer.parseInt(st.nextToken());
28-
s = new int[n + 1];
14+
m = Integer.parseInt(st.nextToken());
15+
ans = -10000000;
16+
sum = new int[n + 1];
2917

3018
st = new StringTokenizer(br.readLine());
31-
for (int i = 1; i < n + 1; i++){
32-
s[i] = s[i - 1] + Integer.parseInt(st.nextToken());
19+
for(int i = 1; i < n + 1; i++) sum[i] = sum[i - 1] + Integer.parseInt(st.nextToken());
20+
for(int i = m; i < n + 1; i++){
21+
ans = Math.max(ans, sum[i] - sum[i - m]);
3322
}
23+
System.out.println(ans);
3424
}
35-
}
25+
}

0 commit comments

Comments
 (0)