코딩 테스트 공부 -> 알고리즘 기초 알기 수순으로 공부를 하다 stack, queue는 잘 활용해보지 않았던 거 같아 개념을 되짚어 보고자 한다.
그럼 가보자구~!~!
stack의 특징은 바로 LIFO(Last In First Out, 후입선출)
마지막에 들어온 데이터가 먼저 출력된다는 것이다.
삽입과 삭제가 한 쪽에서 일어나며 깊이 탐색(DFS)에서 사용하는 자료구조.
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
//input data result : [1, 2, 3, 4]
System.out.println("input data result : " + stack.toString());
stack.pop();
stack.pop();
// delete data result : [1, 2]
System.out.println("delete data result : " + stack.toString());
// get data : 2
System.out.println("get data : " + stack.peek());
Queue의 특징 FIFO(First In First Out, 선입선출)
먼저 들어온 데이터가 먼저 출력된다는 것이다.
삽입과 삭제가 양쪽에서 일어나며 너비우선탐색(BFS)에서 사용하는 자료구조.
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);
//input data result : [1, 2, 3, 4]
System.out.println("input data result : " + queue.toString());
queue.poll();
queue.poll();
// delete data result : [1, 2]
System.out.println("delete data result : " + queue.toString());
// get data : 2
System.out.println("get data : " + queue.peek());
queue.clear();
// queue clear result : []
System.out.println("queue clear result : " + queue.toString());
알고리즘 코딩테스트_이지스퍼블리싱 김종관