article thumbnail image
Published 2022. 9. 28. 21:20

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

 

 

 

 

#include <bits/stdc++.h>
using namespace std;
queue<int> q;
string cmd;
int n, k;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> cmd;
    if (cmd == "push") {
      cin >> k;
      q.push(k);
    } else if (cmd == "pop") {
      if (q.empty())
        cout << -1 << '\n';
      else {
        cout << q.front() << '\n';
        q.pop();
      }
    } else if (cmd == "size")
      cout << q.size() << '\n';
    else if (cmd == "empty")
      cout << q.empty() << '\n';
    else if (cmd == "front") {
      if (q.empty())
        cout << -1 << '\n';
      else
        cout << q.front() << '\n';
    } else if (cmd == "back") {
      if (q.empty())
        cout << -1 << '\n';
      else
        cout << q.back() << '\n';
    }
  }
}

큐1 문제보다 명령의 개수가 더 많아졌기 때문에 알고리즘 수행 시간을 줄여야한다.

하지만 내가 큐1 문제에서 작성했던 코드도 충분히 수행 시간이 짧았었기 때문에 그대로 제출해봤다.

https://pd6156.tistory.com/285

 

 

 

문제해결 ><

 

 

 

'알고리즘' 카테고리의 다른 글

[BOJ] 10886: 덱  (0) 2022.09.29
[BOJ] 2164: 카드2  (0) 2022.09.29
[BOJ] 10845: 큐  (0) 2022.09.28
[BOJ] 1874: 스택 수열  (1) 2022.09.28
[BOJ] 10773: 제로  (0) 2022.09.28
복사했습니다!