๐ ๋งํฌ
https://www.acmicpc.net/problem/21921
https://github.com/jokj624/PS/blob/master/20000-25000/21921.cpp
๐คฏ ํ์ค ํ๊ธฐ
ํ์ค ํ๊ธฐ : ์ ๋ชฉ์ ์ด๋๋ฆผ
๐คท ๋ฌธ์
๐ฉ๐ป ํ์ด
๋์ ํฉ ๋ฌธ์
๋ธ๋ก๊ทธ ์ฌ๋ฆฌ๋ ค๊ณ ๋ฐฑ์ค ๋ค์ด๊ฐ๋ค๊ฐ ์ต๊ทผ ์ฌ๋ผ์จ ๋ฌธ์ ์ '๋ธ๋ก๊ทธ' ๋ฌธ์ ๊ฐ ์๊ธธ๋ ๊ท์ฌ์์ ๋ค์ด๊ฐ๋ค.
๋ฌธ์ ์ฝ์ด๋ณด๋ ์ฒ์์ ๋ฑ์ธ๊ฐ? ํ๋ค๊ฐ ๋์ ํฉ์ผ๋ก ํ๋ฉด ๊ธ๋ฐฉ ํ๋ฆด ๊ฒ ๊ฐ์์ ์๋ํ๋ค.
๋งค๋ฒ ๋์ ํฉ์ ์ ์ฅํ ๋ฐฐ์ด์ ๋ฐ๋ก ์ ๋์ ํฉ๊ณผ ํ์ฌ ๋ฐฉ๋ฌธ์ ์๋ฅผ ๋ํด์ค๋ค.
์ํ๋ ๊ธฐ๊ฐ์ด X์ผ ๋, ํ์ฌ ์์น๊ฐ i ๋ผ๋ฉด (i > X) sum[i] - sum[i-X] ๊ฐ X๊ธฐ๊ฐ ๋์์ ๋ฐฉ๋ฌธ์ ์๊ฐ ๋๋ค.
์ด๋ฅผ ๋น๊ตํ์ฌ, ์ต๋ ์ผ๋๋ฅผ ๊ฐฑ์ ํ๊ณ , ๊ฐ์ ๊ฐ์ด ๋์จ๋ค๋ฉด ์นด์ดํ ํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
๐ป ์ฝ๋
//AC
//BOJ 21921 ๋ธ๋ก๊ทธ
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
ll sum[250001];
int main(){
int N, X, num;
cin >> N >> X;
for(int i=0; i<N; i++){
scanf("%d", &num);
if(i==0) {
sum[i] = num;
continue;
}
sum[i] = sum[i-1] + num;
}
ll maxSum = sum[X-1];
int cnt = 1;
for(int i=X; i<N; i++){
if(maxSum < sum[i] - sum[i-X]){
maxSum = sum[i]-sum[i-X];
cnt = 1;
}
else if(maxSum == sum[i]-sum[i-X]){
cnt += 1;
}
}
if(maxSum == 0){
printf("SAD");
}
else{
printf("%lld\n", maxSum);
printf("%d", cnt);
}
}
'DEV > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ/21924] ๋์ ๊ฑด์ค, c++ (0) | 2021.06.08 |
---|---|
[BOJ/2023] ์ ๊ธฐํ ์์, c++ (0) | 2021.06.08 |
[BOJ/9202] Boggle, c++ (1) | 2021.06.04 |
[BOJ/21872] Deque Game, c++ (0) | 2021.06.04 |
[BOJ/1103] ๊ฒ์, c++ (0) | 2021.05.29 |