import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
List<Integer> list = new ArrayList<>();
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int K = Integer.parseInt(st.nextToken());
int sum[] = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <=N; i++) {
sum[i] = sum[i-1]+Integer.parseInt(st.nextToken());
} //누적합 구하고
for(int i = K; i <= N; i++) {
list.add(sum[i] - sum[i-K]);
}
System.out.println(Collections.max(list));
}
}
누적합 + arrayList 사용해서 구간합 append 해주고 Collections.max() 함수로 최댓값 구해주었는데.....
이클립스에서 컴파일하면 오류 하나 없이 매우 잘 나온다.
하지만 문제는
......................?
차라리 내 목숨을 가져가라............#mood
알바하다 눈물 훔친 썰 푼다
도대체 왜 ArrayList 쓰면 계속 런타임 에러가 뜨는건지 심지어 이유도 여러가지다.
분명히 인덱스랑 범위도 잘 맞췄는데 도대체 왜???
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
*/
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
//List<Integer> list = new ArrayList<>();
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int sum[] = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <=N; i++) {
sum[i] = sum[i-1]+Integer.parseInt(st.nextToken());
} //누적합 구하고
int max = Integer.MIN_VALUE;
for(int i = K; i <= N; i++) {
//list.add(sum[i] - sum[i-K]);
int acc_sum = sum[i] - sum[i-K];
max = Math.max(max,acc_sum);
}
//System.out.println(Collections.max(list));
System.out.println(max);
}
}
결국은 ArrayList 포기하고 max 값 계속 갱신하면서 Math.max 써서 통과했다는.......
이클립스에서는 잘만 나오는데 뭐가 문제냐고!!!! 답답하다 증말
'Problems & Solutions' 카테고리의 다른 글
13900 순서쌍의 곱의 합 (0) | 2022.08.10 |
---|---|
16139 인간-컴퓨터 상호작용 (0) | 2022.08.10 |
10816 숫자 카드2 (0) | 2022.08.05 |
1920 수 찾기 (0) | 2022.08.05 |
19941 햄버거 분배 (0) | 2022.08.05 |