Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- BAEKJOON
- 동적계획법
- 파이썬
- 안드로이드스튜디오
- cos
- codingtest
- cos pro 1급
- DART
- django
- 알고리즘
- android
- cos pro
- 코드품앗이
- 백준
- vuejs
- 분할정복
- DFS
- Python
- DFS와BFS
- 동적계획법과최단거리역추적
- Algorithm
- 코테
- Vue
- AndroidStudio
- 안드로이드
- issue
- 코딩테스트
- C++
- 개발
- Flutter
Archives
- Today
- Total
Development Artist
[Baekjoon, C++] 2164번 : 카드2 본문
728x90
반응형
백준 단계별 풀기에서 큐,덱 두 번째 문제이다.
링크는 아래와 같다.
1. for문으로 i=1부터 해서 N까지 숫자들을 queue에 push한다.
2. 하나가 남을때 까지 = queue의 사이즈가 1이 될 때 까지. 따라서 while문으로 하고 조건은 queue.size() > 1로 한다.
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int numberOfCard;
int lastOfCard = 0;
queue<int> que;
cin >> numberOfCard;
for (int i = 1; i <= numberOfCard; i++) {
que.push(i);
}
while (que.size() > 1) {
que.pop();
if (que.size() == 1) {
lastOfCard = que.front();
break;
}
int topOfCard;
topOfCard = que.front();
que.push(topOfCard);
que.pop();
}
cout << lastOfCard;
return 0;
}
하지만 결과는...
근데 생각해보면, 따로 변수를 둬서 그것들을 저장하는 것이 아니라, que.front()를 이용해서 바로 넣어주면 코드가 더 간단해 진다. 오버플로우가 날 경우, 틀렸습니다도 출력한다는 것을 보았었는데, 그 문제가 아닐까 짐작해본다.
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int numberOfCard;
queue<int> que;
cin >> numberOfCard;
for (int i = 1; i <= numberOfCard; i++) {
que.push(i);
}
while (que.size() > 1) {
que.pop();
que.push(que.front());
que.pop();
}
cout << que.front();
return 0;
}
이상으로 2164번 이였다.
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon, C++] 1966번 : 프린터 큐 (0) | 2021.01.15 |
---|---|
[Baekjoon, C++] 11866번 : 요세푸스 문제 0 (0) | 2021.01.14 |
[Beakjoon, C++] 18258번 : 큐2 (0) | 2021.01.12 |
[Beakjoon, C++] 17298번 : 오큰수 (0) | 2021.01.10 |
[Baekjoon, C++] 1874번 : 스택 수열 (0) | 2021.01.09 |
Comments