• Home

My Codegate

  • Home

백준 10866 덱 자바 문제풀이

2023/12/19 Posted by Codegate Java No Comments
백준 10866 덱 자바 문제풀이

문제 링크

문제를 보면 Deque를 구현해야 하는데, 명령은 많지만 정직하게 구현만 해 주면 되기에 딱히 어려울 것은 없다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;

public class Main {

  public static ArrayDeque<Integer> deque = new ArrayDeque<>();

  public static void process(String s) {

    String[] split = s.split(" ");

    if (split[0].equals("push_front")) {
      deque.addFirst(Integer.parseInt(split[1]));
    } else if (split[0].equals("push_back")) {
      deque.addLast(Integer.parseInt(split[1]));
    } else if (split[0].equals("pop_front")) {
      if (deque.size() == 0) {
        System.out.println(-1);
      } else {
        System.out.println(deque.pollFirst());
      }
    } else if (split[0].equals("pop_back")) {
      if (deque.size() == 0) {
        System.out.println(-1);
      } else {
        System.out.println(deque.pollLast());
      }
    } else if (split[0].equals("size")) {
      System.out.println(deque.size());
    } else if (split[0].equals("empty")) {
      if (deque.size() == 0) {
        System.out.println(1);
      } else {
        System.out.println(0);
      }
    } else if (split[0].equals("front")) {
      if (deque.size() == 0) {
        System.out.println(-1);
      } else {
        System.out.println(deque.peekFirst());
      }
    } else if (split[0].equals("back")) {
      if (deque.size() == 0) {
        System.out.println(-1);
      } else {
        System.out.println(deque.peekLast());
      }
    }

  }


  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());

    for (int i = 0; i < count; i++) {
      process(br.readLine());
    }

  }

}

문제를 풀어보자면, 클래스 쪽에 ArrayDeque를 선언해 놓은 뒤, 메인 메소드에서는 입력받은 내용을 process 메소드로 보내주고 프로세스에서 Deque를 구현해주면 되는데

분류만 해서 진행해주면 되는 수준이고 이미 deque에 구현해야 할 메소드가 모두 있기 때문에 코드 길게 짜느라 실수로 잘못 넣는 케이스를 조심해서 완성해주면 되겠다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next