알고리즘/구현,시뮬
BOJ - 2559 ) 수열
개발자가될수있을까?
2022. 6. 27. 23:42


https://www.acmicpc.net/problem/2559
2559번: 수열
첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기
www.acmicpc.net
K개가 될때까지 더하고, 이후에는 K길이 전만큼은 빼주면서 현재 인덱스 값을 더해주며 진행한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int now= 0;
int answer=-987654321;
int arr[] = new int[N];
st = new StringTokenizer(br.readLine());
for(int i=0;i<N;) {arr[i] = Integer.parseInt(st.nextToken());++i;}
for(int i=0;i<N;) {
if(i<K-1) {
now+=arr[i];
} else {
now+=arr[i];
answer = answer > now ? answer : now;
now-=arr[i-K+1];
}
++i;
}
System.out.println(answer);
}
}
