[λ°±μ€][JAVA]10828λ² : μ€ν
λ¬Έμ
μ μλ₯Ό μ μ₯νλ μ€νμ ꡬνν λ€μ, μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ λ€μ― κ°μ§μ΄λ€.
- push X: μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
- pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
- empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
- top: μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 10,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€. λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
μμ μ λ ₯ 1
14
push 1
push 2
top
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
top
μμ μΆλ ₯ 1 볡μ¬
2
2
0
2
1
-1
0
1
-1
0
3
μμ μ λ ₯ 2 볡μ¬
7
pop
top
push 123
top
pop
top
pop
μμ μΆλ ₯ 2 볡μ¬
-1
-1
123
123
-1
-1
μ€νμ μ΄ν΄νκ³ μλλ λ§λμ λ¬Έμ μλ€.
push, pop, size, empty, top 5κ°μ§μ λ©μλλ₯Ό ꡬννκ³
λ°°μ΄κ³Ό μμμκ°μ(size)λ₯Ό μ΄μ©νλ€.
( sizeλ λ°°μ΄μ ν¬κΈ°κ° μλλΌ 'μμ(λ°μ΄ν°)μ κ°μ' μ΄λ€. )
import java.util.*;
public class Main {
public static int[] stack;
public static int size=0;
public static void main(String[] args) {
Scanner kb=new Scanner(System.in);
StringBuilder sb=new StringBuilder();
int N=kb.nextInt();
stack = new int[N];
for(int i=0; i<N; i++){
String str=kb.next();
switch(str){
case "push":
push(kb.nextInt());
break;
case "pop":
sb.append(pop()).append('\n');
break;
case "size":
sb.append(size()).append('\n');
break;
case "empty":
sb.append(empty()).append('\n');
break;
case "top":
sb.append(top()).append('\n');
break;
}
}
System.out.println(sb);
}
public static void push(int item){
stack[size]=item;
size++;
}
public static int pop(){
if(size==0){
return -1;
}
else{
int res=stack[size-1];
stack[size-1]=0;
size--;
return res;
}
}
public static int size(){
return size;
}
public static int empty(){
if(size==0){
return 1;
}
else{
return 0;
}
}
public static int top(){
if(size==0){
return -1;
}
else{
return stack[size-1];
}
}
}