Notice
Recent Posts
Recent Comments
Link
궤도
[백준] 2164번 : 카드2 본문
문제
풀이
1~N까지의 카드가 순서대로 있다고 한다.
제일 위에 있는 카드를 버리고(pop)
그 다음에 있는 제일 위의 카드를 제일 아래로 옮긴다.(pop->push)
이걸 카드가 1장 남을 때까지 반복한다고 한다.(size가 1이면 반복문 종료)
이대로 작성하면 된다.
소스코드
#include <iostream>
#include <queue>
using namespace std;
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(); //첫 장 제거
int tmp = q.front(); //그 다음장 저장해두고
q.pop(); //제거
q.push(tmp); //맨 뒤로 다시 넣어줌
}
cout << q.front();
}
Comments