출처: https://www.acmicpc.net/problem/18258
Approach
[큐] Queue를 구현하는 문제이다.
[큐] Queue란?
Queue란? 선입선출(First In First Out, FIFO)의 자료 구조 ▶ 큐(Queue)는 한쪽에서 삽입(Push, Enqueue) 하며, 다른 한쪽에서 빠져나오는(Pop, Dequeue) 구조 두 지점을 와 로 표현한다. (Front, Rear) ▶ C++..
zoosso.tistory.com
자료구조를 구현하는 것에서는 [BOJ] 10845 큐 문제와 비슷하다.
[BOJ] 백준 10845 큐
출처: https://www.acmicpc.net/problem/10845 Approach Queue를 구현하는 문제이다. [큐] Queue란? Queue란? 선입선출(First In First Out, FIFO)의 자료 구조 ▶ 큐(Queue)는 한쪽에서 삽입(Push, Enqueue) 하..
zoosso.tistory.com
해당 문제는 명령어의 최대 개수가 200만개이기 때문에 (1 ≤ N ≤ 2,000,000)
단순 구현에 그치지 않고 시간 성능을 고려해야 한다.
[C++] [STL] Queue
Queue 기본 연산 - FIFO 구조 (First In First Out) - push(element) : 큐 (뒤에) 원소 추가 - pop() : 큐에 (앞쪽에) 있는 원소 삭제 - front() : 큐 제일 앞에 있는 원소 반환 - back() : 큐 제일 뒤에 있는..
zoosso.tistory.com
C Style 코드라면 시간제한에 걸리지 않지만
C++에서 iostream 중 개행문자 endl 사용하는 경우에는 입출력 구문들은 속도가 느리기 때문에 TLE 발생한다.
endle 대신에 \n 을 사용해야 합니다.
→ #define endl '\n' 사용하면 된다.
#include <stdio.h>
#include <cstring>
#include <queue>
using namespace std;
char cmd[10];
int main()
{
// freopen("input.txt", "r", stdin);
int n; scanf("%d", &n);
int val;
queue<int> que;
for (int i = 0; i < n; i++)
{
scanf("%s", cmd);
if (!strcmp(cmd, "push"))
{
scanf("%d", &val);
que.push(val);
}
else if (!strcmp(cmd, "pop"))
{
if (que.size() == 0)
{
printf("-1\n");
}
else
{
printf("%d\n", que.front());
que.pop();
}
}
else if (!strcmp(cmd, "front"))
{
if (que.size() == 0)
{
printf("-1\n");
}
else
{
printf("%d\n", que.front());
}
}
else if (!strcmp(cmd, "back"))
{
if (que.size() == 0)
{
printf("-1\n");
}
else
{
printf("%d\n", que.back());
}
}
else if (!strcmp(cmd, "size"))
{
printf("%d\n", que.size());
}
else if (!strcmp(cmd, "empty"))
{
printf("%d\n", que.empty());
}
}
}
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 3085 사탕 게임 (0) | 2021.07.24 |
---|---|
[BOJ] 백준 10448 유레카 이론 (0) | 2021.07.23 |
[BOJ] 백준 10845 큐 (0) | 2021.07.22 |
[BOJ] 백준 10828 스택 (0) | 2021.07.22 |
[BOJ] 백준 2869 달팽이는 올라가고 싶다. (0) | 2021.07.21 |
댓글