사용언어 : C++
문제풀이
* queue 이용하기
(1) queue에 1부터 n까지 순서대로 push한다
(2) queue front pop 해준다
(3) queue front를 push해주고, queue front를 pop해준다. (맨 앞에 있는 값 맨 뒤로 보내기)
이 동작을 queue size가 1이 될 때까지 반복 (즉, 1보다 클때까지 while문 돌리기)
전체코드
#include <iostream>
using namespace std;
#include <queue>
int main() {
queue<int> q;
int n;
cin >> n;
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();
}
총평
queue를 이용한 간단한 문제인 것 같다
문제 출처
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
'CodingTest > BOJ' 카테고리의 다른 글
[BOJ 1110] 백준 더하기 사이클 - C++ (0) | 2022.04.02 |
---|---|
[BOJ 2164] 백준 좌표 압축 풀이 - C++ (0) | 2021.11.19 |
[BOJ 11047] 백준 동전0 풀이 - C++ (0) | 2021.11.14 |
[BOJ 20001] 백준 고무오리 디버깅 풀이 - C++ (0) | 2021.09.30 |
[BOJ 1699] 백준 제곱수의 합 풀이 - C++ (0) | 2021.09.30 |