반응형
728x170
흥미로운 문제다.
실제로 최근 1달 이내...
최근 1년 이내..
최근 5년 이내..
를 가진 모든 데이터들을 이렇게 다룰 것만 같다.
그만큼 중요하지만 쉬운 문제라고 본다.
큐를 이용한다.
https://www.acmicpc.net/problem/21921
#맞는 풀이
#include <bits/stdc++.h>
using namespace std;
int N, X;
int main(){
cin >> N >> X;
queue<int> q;
int cnt = 0;
int sum = 0;
unordered_map<int, int> number;
int M = 0;
while(N--){
int visit;
cin >> visit;
sum += visit;
q.push(visit);
cnt++;
if(cnt>=X){
M = max(M,sum);
number[sum]++;
sum -= q.front();
q.pop();
cnt--;
}
}
if(M == 0){
cout << "SAD" << '\n';
}else{
cout << M <<'\n';
cout << number[M] << '\n';
}
return 0;
}
큐에 하나씩 넣어주고
결국 큐의 크기를 정해놓고 날이 가도 큐만 오래된 날자는 빠지고 새로운 날짜가 들어오고
정말 단순하지만
우리 실생활에서 쓰일 법한 알고리즘이다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
프로그래머스, N으로 표현: C++ [CPP] ★★ (0) | 2022.03.08 |
---|---|
백준, BOJ, 1525번, 퍼즐 C++ [CPP] ★★★★★ (0) | 2022.03.06 |
LeetCode, 1920. Build Array from Permutation C++ [CPP] (0) | 2022.02.27 |
백준, BOJ, 2346번, 풍선 터뜨리기 C++ [CPP] ★★★★★ (0) | 2022.02.27 |
백준, BOJ, 2589번, 보물섬 : C++ [CPP] ★★ (0) | 2022.02.15 |