https://www.acmicpc.net/problem/10866
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
바로앞에 풀었던 큐랑 큰 차이는 없다
그냥 보기좋게 구현해봄
#include <stdio.h>
#include <string.h>
#include <deque>
std::deque<int> d;
int main(){
int n,t;
char s[20];
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%s", s);
if (strcmp(s,"push_front") == 0) { scanf(" %d", &t); d.push_front(t); }
else if(strcmp(s,"push_back") == 0) { scanf(" %d", &t); d.push_back(t); }
else if(strcmp(s,"pop_front") == 0) { if(d.empty()) puts("-1"); else { printf("%d\n", d.front()); d.pop_front(); } }
else if(strcmp(s,"pop_back") == 0) { if(d.empty()) puts("-1"); else { printf("%d\n", d.back()); d.pop_back(); } }
else if(strcmp(s,"size") == 0) { printf("%d\n", d.size()); }
else if(strcmp(s,"empty") == 0) { printf("%d\n", d.empty()); }
else if(strcmp(s,"front") == 0) { printf("%d\n", d.empty()?-1:d.front()); }
else if(strcmp(s,"back") == 0) { printf("%d\n", d.empty()?-1:d.back()); }
}
return 0;
}
예전에 정올준비할때 지도교사쌤이 이렇게짜는거보고
코드 진짜 각맞춰서 짠다고 했던게 떠올랐다 ㅎ
반응형