SMALL
안녕하세요 오늘은 큐 개념을 이용하면 아주 간단하게 풀리는 문제를 풀어보도록 하겠습니다.
전략:
1. 큐를 선언해주고 N번 반복하는 for문에서 q.push()를 이용하여 카드를 배열한다.
2. q.size()가 1이 아니면 while문을 반복하게 while문을 작성한다.
3. q.size()가 1이될때까지 q.pop(), q.pop(q.front()), q.pop() 순서대로 작성하여 1이되면 그 값을 출력한다.
코드:
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N;
cin>>N;
queue<int> q;
for(int i= 1; i<=N; i++){
q.push(i);
}
while(q.size()!=1){
q.pop();
q.push(q.front());
q.pop();
}
cout<<q.front();
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 10828번 c++ 풀이 (0) | 2021.08.06 |
---|---|
백준 10866번 c++ 풀이 (0) | 2021.08.06 |
백준 10845번 c++ 풀이 (0) | 2021.08.06 |
백준 11050번 c++ 풀이 (0) | 2021.08.05 |
백준 18870번 c++ 풀이 (0) | 2021.08.05 |