용꿀
꼬마개발자허니
용꿀
전체 방문자
오늘
어제
  • 분류 전체보기 (248)
    • 개발 (75)
      • 스프링 입문 (7)
      • 스프링 기본 (9)
      • ToDo List using JPA (2)
      • 스프링 개념 (9)
      • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (8)
      • 스프링 MVC (3)
      • CS (19)
      • 개발 팁 (8)
      • 스프링 MSA (5)
      • 곰터뷰🐻 (5)
    • 알고리즘 (169)
      • 알고리즘 문제 풀이 (165)
    • 잡동사니 (1)
      • 노래 가사 (1)
hELLO · Designed By 정상우.
용꿀

꼬마개발자허니

(C++) 백준 10866번 - 덱
알고리즘/알고리즘 문제 풀이

(C++) 백준 10866번 - 덱

2023. 3. 21. 22:47

문제 링크 : https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

풀이

Deque의 다양한 메서드들을 사용하는 문제이다. 실버 4 문제치곤 전혀 어렵지 않은 문제이다.

하지만 예외 처리해줘야 할게 꽤 있고, 반복적인 코드들이 많아 실수하기는 쉬운 것 같다.

#include <iostream>
#include <deque>

using namespace std;

deque<int> D;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);    

    int n;
    cin >> n;
    while(n--){
        string s;
        cin >> s;
        if(s == "push_back"){
            int i;
            cin >> i;
            D.push_back(i);
        }else if(s == "push_front"){
            int i;
            cin >> i;
            D.push_front(i);
        }else if(s == "pop_back"){
            if(D.empty()) cout << -1 << "\n";
            else{
                int i;
                i = D.back();
                D.pop_back();
                cout << i << "\n";
            }
        }else if(s == "pop_front"){
            if(D.empty()) cout << -1 << "\n";
            else{
                int i;
                i = D.front();
                D.pop_front();
                cout << i << "\n";
            }
        }else if(s == "size"){
            cout << D.size() << "\n";
        }else if(s == "empty"){
            cout << D.empty() << "\n";
        }else if(s == "front"){
            if(D.empty()) cout << -1 << "\n";
            else cout << D.front() << "\n";
        }else{ // back
            if(D.empty()) cout << -1 << "\n";
            else cout << D.back() << "\n";
        }
    }
}

 

'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글

(C++) 백준 1021번 - 회전하는 큐  (0) 2023.03.22
(C++) 백준 4949번 - 균형잡힌 세상  (0) 2023.03.22
(C++) 백준 10845번 - 큐  (0) 2023.03.21
(C++) 백준 2841번 - 외계인의 기타 연주  (0) 2023.03.21
(C++) 백준 2493번 - 탑  (0) 2023.03.17
    '알고리즘/알고리즘 문제 풀이' 카테고리의 다른 글
    • (C++) 백준 1021번 - 회전하는 큐
    • (C++) 백준 4949번 - 균형잡힌 세상
    • (C++) 백준 10845번 - 큐
    • (C++) 백준 2841번 - 외계인의 기타 연주
    용꿀
    용꿀

    티스토리툴바