#include <iostream>
#include <vector>
using namespace std;
class SW
{
private:
vector<int> Saver;
int Index = 0;
public:
SW(int l);
void Updating(int input, int o_idx);
};
SW::SW(int l)
{
for (int j = 0; j < l; j++)
this->Saver.push_back(1000000000);
}
void SW::Updating(int input, int o_idx)
{
// 인덱스 초기화
this->Index %= this->Saver.size();
this->Saver[this->Index++] = input;
// 최솟값 찾기 - 최솟값만 저장하고 그것의 인덱스를 저장해놓고 그거랑 비교하다가 최솟값이 슬라이딩윈도우에서 사라지면 다시 최솟값을구한다?
int least = this->Saver[0];
for (int i = 1; i <= o_idx; i++)
{
if (least > this->Saver[i])
least = this->Saver[i];
}
// 최솟값 출력
cout << least << " ";
}
int main()
{
int N;
cin >> N;
int L;
cin >> L;
vector<int> D;
for (int i = 0; i < N; i++)
{
int Temp;
cin >> Temp;
D.push_back(Temp);
}
SW Practice(L);
for (int i = 0; i < N; i++)
{
if (i < L)
Practice.Updating(D[i], i);
else Practice.Updating(D[i], L - 1);
}
return 0;
}
#include <vector>
using namespace std;
class SW
{
private:
vector<int> Saver;
int Index = 0;
public:
SW(int l);
void Updating(int input, int o_idx);
};
SW::SW(int l)
{
for (int j = 0; j < l; j++)
this->Saver.push_back(1000000000);
}
void SW::Updating(int input, int o_idx)
{
// 인덱스 초기화
this->Index %= this->Saver.size();
this->Saver[this->Index++] = input;
// 최솟값 찾기 - 최솟값만 저장하고 그것의 인덱스를 저장해놓고 그거랑 비교하다가 최솟값이 슬라이딩윈도우에서 사라지면 다시 최솟값을구한다?
int least = this->Saver[0];
for (int i = 1; i <= o_idx; i++)
{
if (least > this->Saver[i])
least = this->Saver[i];
}
// 최솟값 출력
cout << least << " ";
}
int main()
{
int N;
cin >> N;
int L;
cin >> L;
vector<int> D;
for (int i = 0; i < N; i++)
{
int Temp;
cin >> Temp;
D.push_back(Temp);
}
SW Practice(L);
for (int i = 0; i < N; i++)
{
if (i < L)
Practice.Updating(D[i], i);
else Practice.Updating(D[i], L - 1);
}
return 0;
}
댓글
댓글 쓰기