문제 출처:https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net

이 문제는 queue를 통해서 구형했습니다. 제일 아래로 옮기는 카드는 pop으로 빠져나온 후 push로 넣어주고, 버리는 카드는 추가안해주면 됩니다. 코드는 다음과 같습니다:
#include <iostream>
#include <queue>
using namespace std ;
int main(){
ios::sync_with_stdio(false) ;
cin.tie(NULL) ; cout.tie(NULL) ;
queue<int> q ;
int N, num ;
cin >> N ;
for(int i = 1 ; i <= N ; i++)
q.push(i) ;
while(!q.empty() && 1 != q.size()){
q.pop() ;
num = q.front() ;
q.pop() ;
q.push(num) ;
}
cout << q.front() ;
return 0 ;
}
해당 문제는 Github에서도 보실 수 있습니다:
https://github.com/gurcks8989/CodingTest/blob/master/BackJoon/HPS/P2164_Card2.cpp
GitHub - gurcks8989/CodingTest: CodingTest_study_with_c++
CodingTest_study_with_c++. Contribute to gurcks8989/CodingTest development by creating an account on GitHub.
github.com
훈수 및 조언은 언제든 환영입니다.
문제 출처:https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net

이 문제는 queue를 통해서 구형했습니다. 제일 아래로 옮기는 카드는 pop으로 빠져나온 후 push로 넣어주고, 버리는 카드는 추가안해주면 됩니다. 코드는 다음과 같습니다:
#include <iostream>
#include <queue>
using namespace std ;
int main(){
ios::sync_with_stdio(false) ;
cin.tie(NULL) ; cout.tie(NULL) ;
queue<int> q ;
int N, num ;
cin >> N ;
for(int i = 1 ; i <= N ; i++)
q.push(i) ;
while(!q.empty() && 1 != q.size()){
q.pop() ;
num = q.front() ;
q.pop() ;
q.push(num) ;
}
cout << q.front() ;
return 0 ;
}
해당 문제는 Github에서도 보실 수 있습니다:
https://github.com/gurcks8989/CodingTest/blob/master/BackJoon/HPS/P2164_Card2.cpp
GitHub - gurcks8989/CodingTest: CodingTest_study_with_c++
CodingTest_study_with_c++. Contribute to gurcks8989/CodingTest development by creating an account on GitHub.
github.com
훈수 및 조언은 언제든 환영입니다.