백준 알고리즘 10866번 - 덱
2019. 5. 3. 14:16ㆍ프로그래밍/백준 알고리즘
덱을 구현하면 되는 문제였다.
직접 덱을 구현할 수 도 있고, STL을 사용해도 되는 문제였고 귀찮아서 그냥 STL을 사용했다.
push_back(), push_front() 함수가 STL에 구현되어있는 함수와 조금 다르므로 조심해야한다.
계속 틀렷다길래 자세히 봤더니...ㅠㅠ
문제 구현 자체는 엄청 쉬우니 소스코드로 대체한다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include <iostream> #include <deque> #include <cstring> using namespace std; int main() { deque<int> d; int n; cin>>n; for(int i=1;i<=n;i++) { string order; cin>>order; if(order=="push_back"){ int a; scanf("%d",&a); d.push_back(a); } else if(order=="push_front"){ int a; scanf("%d",&a); d.push_front(a); }else if(order=="pop_front"){ if(d.size()==0) { printf("-1\n"); }else{ printf("%d\n",d.front()); d.pop_front(); } }else if(order=="pop_back"){ if(d.empty()) printf("-1\n"); else{ printf("%d\n",d.back()); d.pop_back(); } }else if(order=="size"){ printf("%d\n",d.size()); }else if(order=="empty"){ if(d.empty()) printf("1\n"); else printf("0\n"); }else if(order=="front"){ if(d.empty()) printf("-1\n"); else printf("%d\n",d.front()); }else{ if(d.empty()) printf("-1\n"); else printf("%d\n",d.back()); } } } | cs |
'프로그래밍 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2579번 - 계단 오르기 (0) | 2019.05.07 |
---|---|
백준 알고리즘 1912번 - 연속합 (0) | 2019.05.07 |
백준 알고리즘 11054번 - 가장 긴 바이토닉 부분 수열 (0) | 2019.05.07 |
백준 알고리즘 11727번 - 2×n 타일링 2 (0) | 2019.05.06 |
백준 알고리즘 1406번 - 에디터 (0) | 2019.05.02 |