๐ ๋งํฌ
https://www.acmicpc.net/problem/21921
21921๋ฒ: ๋ธ๋ก๊ทธ
์ฒซ์งธ ์ค์ $X$์ผ ๋์ ๊ฐ์ฅ ๋ง์ด ๋ค์ด์จ ๋ฐฉ๋ฌธ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์ต๋ ๋ฐฉ๋ฌธ์ ์๊ฐ 0๋ช ์ด๋ผ๋ฉด SAD๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์ต๋ ๋ฐฉ๋ฌธ์ ์๊ฐ 0๋ช ์ด ์๋ ๊ฒฝ์ฐ ๋์งธ ์ค์ ๊ธฐ๊ฐ์ด ๋ช ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ค
www.acmicpc.net
https://github.com/jokj624/PS/blob/master/20000-25000/21921.cpp
jokj624/PS
BOJ, CodeForces ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์ค์ฝ๋. Contribute to jokj624/PS development by creating an account on GitHub.
github.com
๐คฏ ํ์ค ํ๊ธฐ
ํ์ค ํ๊ธฐ : ์ ๋ชฉ์ ์ด๋๋ฆผ
๐คท ๋ฌธ์



๐ฉโ๐ป ํ์ด
๋์ ํฉ ๋ฌธ์
๋ธ๋ก๊ทธ ์ฌ๋ฆฌ๋ ค๊ณ ๋ฐฑ์ค ๋ค์ด๊ฐ๋ค๊ฐ ์ต๊ทผ ์ฌ๋ผ์จ ๋ฌธ์ ์ '๋ธ๋ก๊ทธ' ๋ฌธ์ ๊ฐ ์๊ธธ๋ ๊ท์ฌ์์ ๋ค์ด๊ฐ๋ค.
๋ฌธ์ ์ฝ์ด๋ณด๋ ์ฒ์์ ๋ฑ์ธ๊ฐ? ํ๋ค๊ฐ ๋์ ํฉ์ผ๋ก ํ๋ฉด ๊ธ๋ฐฉ ํ๋ฆด ๊ฒ ๊ฐ์์ ์๋ํ๋ค.
๋งค๋ฒ ๋์ ํฉ์ ์ ์ฅํ ๋ฐฐ์ด์ ๋ฐ๋ก ์ ๋์ ํฉ๊ณผ ํ์ฌ ๋ฐฉ๋ฌธ์ ์๋ฅผ ๋ํด์ค๋ค.
์ํ๋ ๊ธฐ๊ฐ์ด 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++ (1) | 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 |