Deque 4

[BOJ 5430] AC (Java)

문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 Deque 문제로 R명령어가 들어왔을 때 값이 들어가는 입구를 바꿔주면 된다. (First, Last) First를 입구로 사용한다면 나중에 값을 뽑을 땐 Last로 뽑아야 생각한 순서대로 값이 출력된다. (반대도 마찬가지) 이 부분이 처음에 헷갈려서 LinkedList 메소드를 테스트하면서 정리해보았다. 2021.11.15 - [Java] - [Java] Deque 자료 구조 (LinkedList 메소드) [Java] Deque 자료 구조 ..

[Java] Deque 자료 구조 (LinkedList 메소드)

Deque 구현체로 ArrayDeque와 LinkedList 를 주로 사용한다. LinkedList에 값을 넣고 뽑기 위한 많은 메소드를 있는데, 헷갈리는 점이 있어서 정리한다. Deque란? 덱(deque, "deck"과 발음이 같음 ← double-ended queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다. (위키백과, 우리 모두의 백과사전.) 예제1. First에 넣어볼까? LinkedList test = new LinkedList(); test.offerFirst(1); test.offerFirst(2); test.offerFirst(3); System...

💻IT/Java 2021.11.15

[BOJ 1021] 회전하는 큐 (Java)

문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 풀이 어렵지 않은 문제이다. deque를 이용해서 풀면 된다. 중간 값을 찾아서 현재 수가 왼쪽에 있는지 오른쪽에 있는지 판단하는 부분에서 많이 헷갈렸다. index 경계값 처리 하는게 머릿속으로 바로바로 안된다. 소스코드는 아래와 같다. 소스코드 package queue; import java.io.BufferedReader; import java.io.InputStreamReader;..

[BOJ 18258] 큐 2 (Java)

문제 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 Deque 구현체로 풀었다. 소스코드 package queue; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayDeque; import ..