2025.02.10 (월요일)
2559번 “수열” (실버III)
#include <iostream> //c++
#include <stdio.h> //c
#include <vector> //c++ 배열
#include <algorithm> // 탐색, 정렬 등 알고리즘
#include <utility> //
#include <string>
#include <string.h>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cstring>
#define fio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // input, output 빠르게 하는 거
#define ll long long // long long이 너무 기니까 ll로 줄여요
#define pii pair<int,int> // pair<int,int>가 너무 길어요 그래서 pii로 줄여요
#define pll pair<ll,ll> // pair<long long, long long> 이 너어어어무 길어요. 그래서 pll로 줄여요
#define MOD 1e9+7 // 모듈러 계산할 때 쓰이는 값, 근데 문제마다 바뀌니까 알아서 바꾸세요
using namespace std;
int main()
{
fio;
int n,k;
cin>>n>>k;
int num;
vector <int> v;
for(int i=0;i<n;i++)
{
cin>>num;
v.push_back(num);
}
ll sum=0;
for(int i=0;i<k;i++)
{
sum+=v[i];
}
ll max=sum;
for(int i=0;i<n-k;i++)
{
sum-=v[i];
sum+=v[i+k];
if(max<sum)
{
max=sum;
}
}
cout<<max;
}
2025.02.11 (화요일)
1966번 “프린터 큐” (실버III)
#include <iostream> //c++
#include <stdio.h> //c
#include <vector> //c++ 배열
#include <algorithm> // 탐색, 정렬 등 알고리즘
#include <utility> //
#include <string>
#include <string.h>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cstring>
#define fio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // input, output 빠르게 하는 거
#define ll long long // long long이 너무 기니까 ll로 줄여요
#define pii pair<int,int> // pair<int,int>가 너무 길어요 그래서 pii로 줄여요
#define pll pair<ll,ll> // pair<long long, long long> 이 너어어어무 길어요. 그래서 pll로 줄여요
#define MOD 1e9+7 // 모듈러 계산할 때 쓰이는 값, 근데 문제마다 바뀌니까 알아서 바꾸세요
using namespace std;
queue <pair<int,int>> que;
int quemax()
{
pair<int,int> max=que.front();
pair<int,int> imsi;
int saize=que.size();
for(int i=0;i<saize;i++)
{
if(max.first<que.front().first)
{
max=que.front();
}
imsi=que.front();
//cout<<que.front()<<' ';
que.pop();
que.push(imsi);
}
return max.first;
}
void ppegonoko()
{
pair<int,int> imsi;
imsi=que.front();
que.pop();
que.push(imsi);
}
int main()
{
fio;
int l;
cin>>l;
vector <int> v;
int n,m;
pair<int,int> imsi;
int pur;
pair<int,int> cur;
for(int i=0;i<l;i++)
{
cin>>n>>m;
for(int j=0;j<n;j++)
{
cin>>imsi.first;
imsi.second=j;
if(j==m)
{
pur=imsi.second;
}
que.push(imsi);
}
while(1)
{
cur=que.front();
//cout<<"cur:"<<cur<<"\\n";
if(quemax()>cur.first)
{
ppegonoko();
}
else
{
v.push_back(cur.first);
if(cur.second==pur)
{
break;
}
que.pop();
}
}
cout<<v.size()<<'\\n';
v.clear();
while(!que.empty())
{
que.pop();
}
//cout<<"size:"<<que.size()<<'\\n';
}
}
2025.02.12 (수요일)
1769번 “3의 배수” (실버V)
#include <iostream> //c++
#include <stdio.h> //c
#include <vector> //c++ 배열
#include <algorithm> // 탐색, 정렬 등 알고리즘
#include <utility> //
#include <string>
#include <string.h>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cstring>
#define fio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // input, output 빠르게 하는 거
#define ll long long // long long이 너무 기니까 ll로 줄여요
#define pii pair<int,int> // pair<int,int>가 너무 길어요 그래서 pii로 줄여요
#define pll pair<ll,ll> // pair<long long, long long> 이 너어어어무 길어요. 그래서 pll로 줄여요
#define MOD 1e9+7 // 모듈러 계산할 때 쓰이는 값, 근데 문제마다 바뀌니까 알아서 바꾸세요
using namespace std;
int main()
{
fio;
string x;
cin>>x;
if(x.size()==1)
{
if(x[0]-'0'==3 || x[0]-'0'==6 || x[0]-'0'==9)
{
cout<<0<<'\\n'<<"YES";
}
else
{
cout<<0<<'\\n'<<"NO";
}
}
else
{
int j=1;
int sum=0;
int realsum=0;
int imsi=1;
int cur;
for(int i=0;i<x.size();i++)
{
sum+=x[i]-'0';
}
for(ll i=0;(sum/10)!=0;i++)
{
cur=sum;
realsum=0;
while(cur!=0)
{
realsum+=cur%10;
cur/=10;
}
sum=realsum;
j++;
if((sum/10)==0)
{
imsi=j;
}
}
if(sum==3 || sum==6 || sum==9)
{
cout<<imsi<<'\\n'<<"YES";
}
else
{
cout<<imsi<<'\\n'<<"NO";
}
}
}
2025.02.13 (목요일)
2559번 “금메달, 은메달, 동메달은 누가?” (실버V)
#include <iostream> //c++
#include <stdio.h> //c
#include <vector> //c++ 배열
#include <algorithm> // 탐색, 정렬 등 알고리즘
#include <utility> //
#include <string>
#include <string.h>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cstring>
#define fio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // input, output 빠르게 하는 거
#define ll long long // long long이 너무 기니까 ll로 줄여요
#define pii pair<int,int> // pair<int,int>가 너무 길어요 그래서 pii로 줄여요
#define pll pair<ll,ll> // pair<long long, long long> 이 너어어어무 길어요. 그래서 pll로 줄여요
#define MOD 1e9+7 // 모듈러 계산할 때 쓰이는 값, 근데 문제마다 바뀌니까 알아서 바꾸세요
using namespace std;
int main()
{
fio;
int n,m;
cin>>n>>m;
stack<int> degistk;
for(int i=n;i>0;i--)
{
degistk.push(i);
}
//1차 경주 대기자 명단 저장
int cur;
stack<int> imsistk;
int rank;
stack<int> rankstk1;
for(int i=0;i<n;i++)
{
cur=degistk.top();
degistk.pop();
cin>>rank;
for(int j=0;j<rank-1;j++)
{
imsistk.push(rankstk1.top());
rankstk1.pop();
}
rankstk1.push(cur);
while(!imsistk.empty())
{
rankstk1.push(imsistk.top());
imsistk.pop();
}
}
//1차 경주
for(int i=0;i<m;i++)
{
degistk.push(rankstk1.top());
rankstk1.pop();
}
//2차 경주 대기자 명단 저장
stack<int> rankstk2;
for(int i=0;i<m;i++)
{
cur=degistk.top();
degistk.pop();
cin>>rank;
for(int j=0;j<rank-1;j++)
{
imsistk.push(rankstk2.top());
rankstk2.pop();
}
rankstk2.push(cur);
while(!imsistk.empty())
{
rankstk2.push(imsistk.top());
imsistk.pop();
}
}
//2차 경주
for(int i=0;i<3;i++)
{
cout<<rankstk2.top()<<'\\n';
rankstk2.pop();
}
//최종 결과
}
2025.02.14 (금요일)
2491번 “수열” (실버IV)
#include <iostream> //c++
#include <stdio.h> //c
#include <vector> //c++ 배열
#include <algorithm> // 탐색, 정렬 등 알고리즘
#include <utility> //
#include <string>
#include <string.h>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
#include <cstring>
#define fio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // input, output 빠르게 하는 거
#define ll long long // long long이 너무 기니까 ll로 줄여요
#define pii pair<int,int> // pair<int,int>가 너무 길어요 그래서 pii로 줄여요
#define pll pair<ll,ll> // pair<long long, long long> 이 너어어어무 길어요. 그래서 pll로 줄여요
#define MOD 1e9+7 // 모듈러 계산할 때 쓰이는 값, 근데 문제마다 바뀌니까 알아서 바꾸세요
using namespace std;
int main()
{
fio;
int n;
cin>>n;
if(n==1)
{
cout<<1;
return 0;
}
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int plus=1;
int minus=1;
int max=2;
for(int i=0;i<n-1;i++)
{
if(a[i]>a[i+1])
{
plus=1;
minus++;
if(max<minus)
{
max=minus;
}
}
else if(a[i]<a[i+1])
{
minus=1;
plus++;
if(max<plus)
{
max=plus;
}
}
else if(a[i]==a[i+1])
{
plus++;
minus++;
if(max<minus)
{
max=minus;
}
if(max<plus)
{
max=plus;
}
}
}
cout<<max;
}