문제접근
•
큐를 이용하여 최대 범위를 지속적으로 업데이트하면서 관리
놓쳤던 부분
•
벡터 2개가 훨씬 간단할듯
코드
2020 KB
0 ms
#include <iostream>
#include <queue>
using namespace std;
int main(void)
{
queue<int> q;
int n;
int cnt = 0;
int limit;
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
q.push(i);
limit = q.size();
while(q.size() > 1)
{
cnt++;
if (cnt > limit)
{
cnt = 1;
limit = q.size();
}
if (cnt % 2 != 1)
q.push(q.front());
q.pop();
}
cout << q.front();
return (0);
}
C++
복사