반응형
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
문제 설명은 다음과 같다.
알고리즘 분류에도 나와있듯이, "큐" 라는 자료구조를 사용하면 쉽게 풀 수 있는 문제이다.
#include <queue>
하면 queue를 사용 할 수 있고, FIFO (First in, First Out)이 성립하는 자료구조이다. 쉽게 말해 먼저 들어간 애가 먼저 나온다. 라고 이해하면 된다.
그러니 예를 들어 4이라는 숫자가 들어왔다면, 그냥 큐에 <1,2,3,4> 이렇게 넣어놓은다음에, 맨 앞에 걸 빼고 그 다음 거를 맨 뒤로 보내는 연산을 반복해주면 된다.
아래는 그걸 해내는 C++ 코드이다.
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
queue<int> anslist;
int n;
cin >> n;
for (int i=1;i<n+1;i++){
anslist.push(i);
}
while (anslist.size()!=1){
anslist.pop();
anslist.push(anslist.front());
anslist.pop();
}
cout << anslist.front();
return 0;
}
반응형
'백준 문제풀이 > 백준 Silver' 카테고리의 다른 글
백준 1620 - 나는야 포켓몬 마스터 이다솜 [C/C++] (0) | 2023.11.04 |
---|---|
백준 1764 - 듣보잡 [C/C++] (0) | 2023.11.02 |
백준 2839 - 설탕 배달 [C/C++] (1) | 2023.11.02 |
백준 4949 - 균형잡힌 세상 [C/C++] (0) | 2023.11.02 |
백준 9012 - 괄호 [C/C++ (0) | 2023.11.02 |