CodingTest/Java
BOJ_2559 : ์์ด
Soom_1n
2023. 1. 12. 09:18
2559๋ฒ: ์์ด
์ฒซ์งธ ์ค์๋ ๋ ๊ฐ์ ์ ์ N๊ณผ K๊ฐ ํ ๊ฐ์ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ ์ ์ N์ ์จ๋๋ฅผ ์ธก์ ํ ์ ์ฒด ๋ ์ง์ ์์ด๋ค. N์ 2 ์ด์ 100,000 ์ดํ์ด๋ค. ๋ ๋ฒ์งธ ์ ์ K๋ ํฉ์ ๊ตฌํ๊ธฐ
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- n๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์์ ์ฐ์๋ k๊ฐ๋ฅผ ๊ณจ๋์ ๋ ๊ทธ ํฉ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
- ์ ํ์ ์ธ ๋ ํฌ์ธํฐ, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฌธ์ ์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
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[] arr = new int[n];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int lp = 0, rp = k-1;
int sum = 0;
for (int i = lp; i <= rp; i++) {
sum += arr[i];
}
int answer = sum;
for (int i = 0; i < n-k; i++) {
sum -= arr[lp++];
sum += arr[++rp];
if (sum > answer)
answer = sum;
}
System.out.println(answer);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- k๋งํผ ์ฐจ์ด๋๋ ๋ ํฌ์ธํฐ lp์ rp๋ก ํฉ์ ๊ณ์ฐํ๋ค.
- lp์ rp๋ฅผ 1์ฉ ์ฆ๊ฐํด๊ฐ๋ฉฐ, arr[lp] ๊ฐ์ ํฉ์์ ๋นผ์ฃผ๊ณ arr[rp] ๊ฐ์ ๋ํด์ค๋ค.
- ํฉ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ ์ค๋๋ง์ ํ์ด๋ณด๋๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ์์ผ๋ ๊ฐ๋จํ๋ค.
- ๋ง์ง๋ง for๋ฌธ์์ i๊ฐ์ 0๋ถํฐ ์์ํด์ผํ๋๋ฐ 1๋ถํฐ ์์ํด์ 1ํ ํ๋ ธ๋ค.
728x90