목록큐 (4)
Dev.baelanche
수열을 q에 담아 K-1번째까지 pop, push를 하며 맨 뒤로 보내주고 K번째 수는 pop 한다. K번째에 pop된 순열을 출력한다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int a[] = new int[n]; Queue q = new LinkedList(); for(int i=1; i
큐는 인덱스가 없기 때문에 문서를 담을 큐와 우선순위를 담을 배열을 만들어 풀었다. m 번째로 인쇄되는 문서는 this 라는 이름으로 지었다. 큐의 front 가 우선순위가 제일 높으면 pop 하고 그렇지 않으면 push, pop 을 한다. 동시에 동적배열에서도 우선순위가 제일 높으면 remove 하고 그렇지 않으면 add(get(0)), remove(0) 한다. 큐의 front 가 우선순위 최대값이어서 성공적으로 pop 되었을때만 카운트를 늘렸다. 직접 구현한 큐는 제외하고 올리겠다. (큐 소스는 여기에) public static void main(String[] args) { Scanner sc = new Scanner(System.in); Main q = new Main(); int t = sc.n..
큐로 구현하는 문제이다. 1부터 n 까지 큐에 담고 - 첫번째 케이스에 pop 한다. - 두번째 케이스에 pop 하고 pop 된 수를 push 한다. 위 두가지 케이스를 반복하여 큐에 노드가 1개 남을때 출력해주면 된다. 직접 구현한 큐를 썼다. public class Main { Node head; Node tail; int size = 0; class Node { Node prev; Object value; Node(Object value) { this.value = value; } } public void push(Object value) { Node node = new Node(value); if(size == 0) { head = node; tail = node; } tail.prev = nod..
자료구조 중 선입선출의 특징을 가진 큐 문제다. 큐를 문제에 맞게 직접 구현하여 풀었다. public class Main { Node head; Node tail; int size = 0; class Node { Node prev; Object value; Node(Object value) { this.value = value; } } public void push(Object value) { Node node = new Node(value); if(size == 0) { head = node; tail = node; } tail.prev = node; tail = node; size++; } public Object pop() { if(size == 0) return -1; Node temp = hea..