큐란? 데이터를 일시적으로 쌓아놓은 자료구조이다. 데이터의 입출력순서는 선입선출(먼저 들어온 것이 먼저 나감)이다. 큐에 데이터를 넣는 작업을 인큐(enqueue), 꺼내는 작업을 디큐(dequeue)라고 한다. 즉 어떤 데이터를 인큐하면 큐의 맨 뒤에 데이터를 추가하고, 데이터를 디큐하면 큐의 맨 앞 데이터를 제거한다음 한칸씩 앞으로 당긴다. 근데 이렇게 디큐할때의 복잡도는 O(n)으로, 데이터를 하나 꺼낼때마다 이런 처리를 한다면 효율이 매우 떨어진다. 이런 문제점은 링버퍼를 사용하여 큐를 구현하면 개선할 수 있다. 프런트와 리어 값을 업데이트하며 인큐와 디큐를 수행하게 되기 때문이다. [ O(1) ] 다음은 링버퍼로 큐를 구현하는 코드이다. 구간별 설명은 주석으로 대신한다! import java.u..