728x90
▶ 10828문제 - 스택
- stack : 후입선출(Last In First Out, 나중에 들어온게 가장 먼저 나감).
** stack 사용방법 **
- eclipse java.util.stack기능 사용.
- push() : 메소드 사용해 값 넣음.
- pop() : 메소드 이용해 가장 먼저 입력된 값 출력.
- size() : 메소드 이용해 스택의 크기 출력.
- isEmpty() : 메소드 이용해 스택 비어있는지 확인하고 값 확인.
- peek() : 메소드 이용해 스택의 가장 위에 있는 정수 출력. (메소드 사용하지 않아도 가장 마지막에 넣은 값을 출력할 수 있음.)
▶ 풀이방법
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));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int count = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for(int i = 0; i < count; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
String str = st.nextToken();
switch (str) {
case "push":
stack.push(Integer.parseInt(st.nextToken()));
break;
case "pop" :
if(!stack.isEmpty()) bw.write(stack.pop() + "\n");
else bw.write("-1\n");
break;
case "size" :
bw.write(stack.size() + "\n");
break;
case "empty" :
if(stack.isEmpty()) bw.write("1\n");
else bw.write("0\n");
break;
case "top" :
if(!stack.isEmpty()) bw.write(stack.peek() + "\n");
else bw.write("-1\n");
break;
}
}
bw.flush();
bw.close();
br.close();
}
}
728x90