https://www.acmicpc.net/problem/21921
21921๋ฒ: ๋ธ๋ก๊ทธ
์ฒซ์งธ ์ค์ $X$์ผ ๋์ ๊ฐ์ฅ ๋ง์ด ๋ค์ด์จ ๋ฐฉ๋ฌธ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์ต๋ ๋ฐฉ๋ฌธ์ ์๊ฐ 0๋ช ์ด๋ผ๋ฉด SAD๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์ต๋ ๋ฐฉ๋ฌธ์ ์๊ฐ 0๋ช ์ด ์๋ ๊ฒฝ์ฐ ๋์งธ ์ค์ ๊ธฐ๊ฐ์ด ๋ช ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ค
www.acmicpc.net
1. ๋ฌธ์
์ด N์ผ ์ค X์ผ ๋์ ๊ฐ์ฅ ๋ง์ด ๋ค์ด์จ ๋ฐฉ๋ฌธ์ ์์ ํด๋น ๋ฐฉ๋ฌธ์ ์์ ๊ธฐ๊ฐ์ด ๋ช ๊ฐ์๋์ง ์ถ๋ ฅํ๋ค.
2. ํ์ด
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฌธ์ ์ด๋ค.
์ฒ์์๋ ์ด์ค for๋ฌธ์ผ๋ก ์๋ฆฌ๋ง๋ค X๋ฒ์ฉ for๋ฌธ์ ๋๋ ค์ฃผ์ด ์ด๋ฏธ ์ด์ ์ ํ ๋ฒ ๋ํด์ง ๊ฐ๋ค์ด๋๋ผ๋ ์ค๋ณต์ผ๋ก ๋ค์ ์ฐ์ฐํด์ ํจ์จ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ์์๊ณ ์ ์ถํ์ ๋๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ for๋ฌธ ํ ๋ฒ๋ง์ผ๋ก ๋งจ ์๊ฐ์ ๋นผ๊ณ ๋งจ ๋ท๊ฐ์ ๋ํ๊ณ ์ด ๊ณผ์ ์ ๋๊น์ง ๋ฐ๋ณตํ์ฌ ํจ์จ์ ์ผ๋ก ๋ต์ ๊ตฌํ ์ ์๋ค.
3. ์ฝ๋
import java.io.*;
import java.util.*;
/**
* ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
* ๋์ ํฉ ๋ฐฉ๋ฒ
* ํต์ฌ : ์ค๋ณต๋๋ ์ฐ์ฐ์ ์ ๊ฑฐ
*/
public class boj_๋ธ๋ก๊ทธ {
static int X, N;
static int[] arr;
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
X = Integer.parseInt(st.nextToken());
arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i=0; i<N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//์
๋ ฅ ๋
solution();
}
static void solution() {
int max = 0;
int sum = 0;
int cnt = 1;
for (int i=0; i<X; i++) {
sum += arr[i]; //์ด๊ธฐ๊ฐ
}
max = sum;
for (int i=X; i<N; i++) {
sum -= arr[i-X];
sum += arr[i];
if (max == sum) cnt++;
else if (max < sum) {
max = sum;
cnt = 1;
}
}
if (max == 0) System.out.println("SAD");
else {
System.out.println(max);
System.out.println(cnt);
}
}
// static void lastSolution() {
// int max = 0;
// int cnt = 0;
// for (int i=0; i<N; i++) {
// if (i+X-1 >= N) break;
// int sum = 0;
// for (int j=0; j<X; j++) { //์ด๋ ๊ฒ ํ๋ฉด ์์ข์ ์ : ์ด๋ฏธ ๊ณ์ฐ๋ ๊ฐ๋ค์์๋ ๋งค๋ฒ ์ค๋ณตํด์ ๋ํด์ผ ํ๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ ์ด๋ฐ ์ค๋ณต๋๋ ํฉ ์ฐ์ฐ ๊ณผ์ ์ ์ ๊ฑฐํ ๋ฐฉ๋ฒ.
// sum += arr[i+j];
// if (max == sum) cnt++;
// else if (max < sum) {
// max = sum;
// cnt = 1;
// }
// }
// }
// if (max == 0) sb.append("SAD");
// else {
// sb.append(max).append("\n").append(cnt);
// }
// }
}
4. ์ฌ๋ด
์ฌ๋ผ์ด๋ฉ ์๋์ฐ, ๋์ ํฉ ๋ฌธ์ ๋ฅผ ์ธํผ ์ด๊ธฐ์ ํ ๋ฒ ํ์ด๋ดค๋๋ฐ ์ด๋ฒ์ ๋ค์ ํ์ด๋ณด๋ฉด์ ๊ฐ๋ ์ ์ ๋ฆฌํ ์ ์์ด์ ์ข์๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 14501 ํด์ฌ - Java (0) | 2023.06.01 |
---|---|
[BOJ] 14503 ๋ก๋ด์ฒญ์๊ธฐ - Java (0) | 2023.05.29 |
[BOJ] 20055 ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด - Java (1) | 2022.12.16 |
[BOJ] 12100 2048(Easy) - Java (0) | 2022.11.13 |
[BOJ] 18430 ๋ฌด๊ธฐ๊ณตํ - Java (0) | 2022.11.08 |