반응형
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int main(void)
{
int n;
int int_num;
int _print = 0;
char str[6]; // ~empty 5
queue <int> que;
cin >> n;
for (int i = 0; i < n;i++)
{
cin >> str;
if (strcmp(str, "push") == 0)
{
cin >> int_num;
que.push(int_num);
continue;
}
else if (strcmp(str, "pop") == 0)
{
if (que.empty())
_print = -1;
else
{
_print = que.front();
que.pop();
}
}
else if (strcmp(str, "front") == 0)
{
if (que.empty())
_print = -1;
else
{
_print = que.front();
}
}
else if (strcmp(str, "back") == 0)
{
if (que.empty())
_print = -1;
else
{
_print = que.back();
}
}
else if (strcmp(str, "size") == 0)
{
_print = que.size();
}
else if (strcmp(str, "empty") == 0)
{
if (que.empty())
_print = 1;
else
_print = 0;
}
printf("%d\n", _print);
}
return (0);
}
저번엔 조금 복잡했다면
이번엔 좀 간단하게!
queue stl쓰니가 넘 편하다ㅜㅜ
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct Queue {
int data[10001];
int tail, head;
Queue() :tail(0), head(0) {
memset(data, 0, sizeof(data));
}
bool empty() {
return tail == head ? true : false;
}
void push(int n) {
data[tail++] = n;
}
void pop() {
head++;
}
int front() {
if (empty()) return -1;
return data[head];
}
int back() {
if (empty()) return -1;
return data[tail - 1];
}
int size() {
return tail - head;
}
};
int main() {
Queue Q;
int n, x;
int _print = 0;
cin >> n;
while (n--) {
string cmd;
cin >> cmd;
if (cmd == "push") {
cin >> x;
Q.push(x);
continue;
}
else if (cmd == "pop") {
if (Q.empty()) _print = -1;
else { _print = Q.front() ; Q.pop(); }
}
else if (cmd == "size") {
_print = Q.size();
}
else if (cmd == "empty") {
_print = Q.empty();
}
else if (cmd == "front") {
_print = Q.front();
}
else {
_print = Q.back();
}
cout << _print << "\n";
}
return 0;
}
이건 직접 구현한거
완전 좋다...
반응형
'C언어' 카테고리의 다른 글
백준 17298번 오큰수 / 인덱스와 값의 비교 유의해야 (0) | 2020.08.17 |
---|---|
백준 10799번 boj 쇠막대기와 레이저 / stack썼다가 더 쉽게 고침 (0) | 2020.08.17 |
백준 boj 17413번 단어 뒤집기 2 stl 짱! (0) | 2020.08.17 |
boj 백준 1158번 요세푸스 문제 한번에 통과 ! (0) | 2020.08.12 |
백준 boj 1406번 에디터 문제 또 시간초과ㅜ vector코드 있음 (0) | 2020.08.11 |
boj 남의 코드/정답코드 보는 법 (0) | 2020.08.09 |
[TDD] 로또 프로그램 다음 단계 : 6개 숫자 중 5개 숫자 같은지 확인 (0) | 2020.08.08 |
[TDD] 뽑기 프로그램 만들기 (0) | 2020.08.08 |