π λ¬Έμ μ€λͺ
μ μλ₯Ό μ μ₯νλ νλ₯Ό ꡬννκ³ , νμμ μ¬μ© λλ 5κ°μ§ 컀맨λλ₯Ό ꡬννλΌ.
push X
: μ μ Xλ₯Ό νμ λ£λ μ°μ°μ΄λ€.pop
: νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.size
: νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.empty
: νκ° λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.front
: νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.back
: νμ κ°μ₯ λ€μ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
π‘ μμ΄λμ΄
- νμ
front
μback
μ°μ°μ μν΄μ (맨 μ/λ€ μμμ μ κ·Όνλ μ°μ°)ArrayList
λ³΄λ€ μκ° λ³΅μ‘λλ©΄μμ ν¨μ¨μ μΈLinkedList
λ₯Ό μ¬μ©νλ€. - μ€ν λ¬Έμ μ λμΌνκ² κ³΅λ°±μ΄ ν¬ν¨λμ΄μλ
push X
컀맨λμλstartsWith("push")
λ₯Ό μ¬μ©νκ³ , λλ¨Έμ§ λͺ λ Ήμ΄λequals()
λ‘ μ νν λΉκ΅νλ λ°©μμ μ¬μ©νλ€. - μ 체 λ°λ³΅λ¬Έμ
for
λμwhile (N-- > 0)
μ μ¬μ©νμ¬ κ°λ μ±μ λμλ€.
π μ½λ
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
LinkedList<Integer> queue = new LinkedList<>();
while (N--> 0) {
String command = br.readLine();
// [1] push
if (command.startsWith("push")) {
int X = Integer.parseInt(command.split(" ")[1]);
queue.add(X);
// [2] pop
} else if (command.equals("pop")) {
if (!queue.isEmpty()) {
System.out.println(queue.getFirst());
queue.removeFirst();
} else {
System.out.println(-1);
}
// [3] size
} else if (command.equals("size")) {
System.out.println(queue.size());
// [4] empty
} else if (command.equals("empty")) {
System.out.println(queue.isEmpty() ? 1 : 0);
// [5] front
} else if (command.equals("front")) {
if (!queue.isEmpty()) {
System.out.println(queue.getFirst());
} else {
System.out.println(-1);
}
// [6] back
} else if (command.equals("back")) {
if (!queue.isEmpty()) {
System.out.println(queue.getLast());
} else {
System.out.println(-1);
}
}
}
}
}
β± μκ°λ³΅μ‘λ
νμ 컀맨λλ μ΄ Nκ°μ΄λ©°, κ° μ»€λ§¨λλ push
, pop
, size
, empty
, front
, back
μ€ νλμ΄λ€.
μ΄λ μ¬μ©ν LinkedList
λ΄λΆ ν¨μ addLast
, removeFirst
, getFirst
, getLast
λ±μ μκ° λ³΅μ‘λκ° λͺ¨λ O(1)μ΄λ―λ‘,
μ 체 μ°μ°μ μκ° λ³΅μ‘λλ O(N)μ΄λ€.
βοΈ λλ μ
- μ€νμ ꡬνν λλ
LinkedList
μ μ¬μ©νλκ² λ§μλ κ² κ°λ€. ꡬν-ꡬ쑰 μ μ΄κ² λ§λ€.