Koder / 박성훈
article thumbnail
Published 2020. 10. 26. 22:26
백준 BOJ 10866 - 덱 알고리즘/백준 BOJ

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;
}

예전에 정올준비할때 지도교사쌤이 이렇게짜는거보고

코드 진짜 각맞춰서 짠다고 했던게 떠올랐다 ㅎ

반응형