728x90

 0. [c++] 백준  - 


https://www.acmicpc.net/problem/18258


 1. 풀이


그냥 생각의 흐름대로 코드를 나열해주었다.

이 문제에서 큐는 6가지 동작을 수행하도록 설계해주어야 한다.

뭐, 큐를 직접 만들어서 구현하는 것도 나쁘진 않았겠지만, 그냥 편하게 deque라이브러리를 활용해주었다.


입력으로 들어온 string에 맞게 각 기능을 수행하도록 설계하면 완료!


처음에 시간초과가 발생하여서 endl -> "\n"으로 변경해주고 cin.tie(0), cin.sync_with_stdio(0)을 추가해주었다.



 2. 소스코드


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<string>
 
using namespace std;
 
int N;
string a;
deque<int> arr;
 
int main() {
    cin.tie(0);
    cin.sync_with_stdio(0);
    cin >> N;
    int temp;
    for (int i = 0;i < N;i++) {
        cin >> a;
        if (a == "push") {
            cin >> temp;
            arr.push_back(temp);
        }
        else if (a == "pop") {
            if (!arr.empty()) {
                cout << arr.front() << "\n";
                arr.pop_front();
            }
            else
                cout << -1 << "\n";
        }
        else if (a == "size") {
            cout << arr.size() << "\n";
 
        }
        else if (a == "empty") {
            if (arr.empty())
                cout << 1 << "\n";
            else
                cout << 0 << "\n";
        }
        else if (a == "front") {
            if (arr.empty())
                cout << -1 << "\n";
            else
                cout << arr.front() << "\n";
        }
        else if (a == "back") {
            if (arr.empty())
                cout << -1 << "\n";
            else
                cout << arr.back() << "\n";
        }
    }
}
cs

 3. 참고




질문이나 지적 있으시면 댓글로 남겨주세요~

도움 되셨으면 하트 꾹!


+ Recent posts