이직을 준비하면서 참 많은 경험과 생각을 했습니다. 그 중에 하나가 기초적인 자료구조와 알고리즘은 필수로 알아야겠다 라는 것입니다. 기본적인 Stack과 Queue의 LIFO, FIFO의 개념정도는 알았으나... 이것을 활용한 알고리즘 문제를 풀어보려고하니 머리 텅텅거리는 느낌이었습니다.. 그래서 공부한 것을 정리하고자 합니다.
본문
1. 큐 구조
큐 (Queue)의 자료구조는 FIFO (First-In, First-Out)의 방식이며, 한국말로는 선입선출이라 한다.
샤넬(명품매장)매장에 가장 먼저 줄을 선 사람이 샤넬백을 제일 먼저 살 수 있는 것이라고 생각하면 될까..?
알아야할 용어! Enqueue : 큐에 데이터를 넣는 기능. Dequeue : 큐에서 데이터를 꺼내는 기능.
2. JAVA에서 자료구조 큐를 구현해보자.
추가를 해보자.
class Item {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
queue.add(1); // 1을 추가!
queue.offer(2); // 2를 추가, 성공적으로 add를 하면 true로 리턴한다.
System.out.println("queue = " + queue);
}
}
class Item {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
queue.add(1); // 1을 추가!
queue.offer(2); // 2를 추가, 성공적으로 add를 하면 true로 리턴한다.
queue.poll(); //poll은 dequeue에 해당하며, 꺼내는 기능을 한다. 첫번째 값인 1을 꺼낸다.
System.out.println("queue = " + queue);
}
}