https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
문제분석
- 분류
- 큐
- 문제설명
- N장의 카드를 입력한다.
- 1부터 N까지의 수를 큐에 입력한다.
- Q를 주어진 조건에 맞게 pop,push,pop 활용한다.
입력
6
출력
4
코드
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int>que;
int N;
cin >> N;
for(int x =1 ; x <= N ; x++)
{
que.push(x);
}
while(que.size()>1) //1개가 남을 때 까지
{
que.pop();
que.push(que.front());
que.pop();
}
cout << que.front(); //마지막 남은 카드
return 0;
}
문제풀이
- stl <queue> 선언
- queue에 1부터 N까지의 수를 입력 -> 반복문으로 push!
- FIFO 원칙에 따라 -> 가장 먼저 있는 원소 pop -> 그 다음 있는 원소는 push -> 해당 원소 pop
'Koala - 7기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 2346번: 풍선 터뜨리기 (0) | 2022.08.07 |
---|---|
[백준/JAVA] 11003 최솟값찾기 (0) | 2022.08.06 |
[백준/C++] 1874번 스택 수열 (0) | 2022.08.04 |
[백준/C++] 17612번 쇼핑몰 (0) | 2022.08.04 |
[백준/python] 6236번 용돈관리 (0) | 2022.07.31 |