-
백준 10845번. 큐Algorithms/ACM_ICPC 2022. 8. 19. 14:42
문제 설명
자료구조 큐를 구현하는 문제이다.
접근 방법
- int[] 로 데이터를 저장하도록 구현하였다.
- lastIndex 변수를 이용하여 값이 저장된 마지막 index를 추척하도록 구현하였다.
코드
import java.io.*; import java.util.*; public class Main10845 { private static int size; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); size = Integer.parseInt(br.readLine()); Queue queue = new Queue(size); StringTokenizer tokenizer; for (int i = 0; i < size; i++) { tokenizer = new StringTokenizer(br.readLine(), " "); String command = tokenizer.nextToken(); if ("push".equals(command)) { int x = Integer.parseInt(tokenizer.nextToken()); queue.push(x); } else if ("pop".equals(command)) { System.out.println(queue.pop()); } else if ("size".equals(command)) { System.out.println(queue.size()); } else if ("empty".equals(command)) { System.out.println(queue.empty()); } else if ("front".equals(command)) { System.out.println(queue.front()); } else if ("back".equals(command)) { System.out.println(queue.back()); } } } static class Queue { private static int[] data; private static int lastIndex; public Queue(int size) { this.data = new int[size]; for (int i = 0; i < size; i++) { this.data[i] = -1; } this.lastIndex = 0; } public void push(int x) { data[lastIndex] = x; lastIndex++; } public int pop() { int first = data[0]; for (int i = 1; i < data.length; i++) { data[i - 1] = data[i]; data[i] = -1; } if (lastIndex > 0) { lastIndex--; } return first; } public int size() { return lastIndex; } public int empty() { return lastIndex > 0 ? 0 : 1; } public int front() { return data[0]; } public int back() { return lastIndex > 0 ? data[lastIndex - 1] : -1; } } }
반응형'Algorithms > ACM_ICPC' 카테고리의 다른 글
백준 9663. N-Queen 문제 (0) 2022.08.21 백준 알고리즘, 2225 문제 (0) 2018.08.14 백준 알고리즘, 9461 문제 (0) 2018.08.14 백준 알고리즘, 1699 문제 (0) 2018.08.09 백준 알고리즘, 2579 문제 (0) 2018.08.08