6월 7일(수) - 누적 합 (2559번)
2559번: 수열
첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기
www.acmicpc.net
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
문제점
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
풀이
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[] temperature = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i=1; i<=N; i++)
{
temperature[i] = Integer.parseInt(st.nextToken());
}
int sum = 0;
int idx = 0;
int max_val = -987654321;
for(int i=1; i<=N; i++)
{
sum = sum + temperature[i];
idx++;
if(idx == K)
{
max_val = Math.max(max_val, sum);
sum = sum - temperature[i - K + 1];
idx--;
}
}
System.out.println(max_val);
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
'백준(Java) > 23년 6월' 카테고리의 다른 글
[Java] 백준 - 4134번: 다음 소수 (0) | 2023.06.26 |
---|---|
[Java] 백준 - 11660번: 구간 합 구하기 5 (0) | 2023.06.09 |
[Java] 백준 - 11659번: 구간 합 구하기 4 (0) | 2023.06.06 |
[Java] 백준 - 11053번: 가장 긴 증가하는 부분 수열 (0) | 2023.06.05 |
[Java] 백준 - 2156번: 포도주 시식 (0) | 2023.06.02 |
댓글