programming/알고리즘 풀이
[백준(Baekjoon)/JAVA] 10828. 스택
몽구스_
2021. 2. 14. 01:07
728x90
반응형
시간초과가 나서 string builder를 이용해 한번에 모아서 출력을 해주었다.
줄바꿈표시도 해주었다.
일반적인 스택문제라 알고리즘은 어렵지 않았다.
자바로 풀 때는 c로 풀 때 보다 시간초과가 많이 나는 것 같다.
import java.util.Scanner;
public class bj10828 {
static int[] stack;
static int top = -1;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
stack = new int[n];
StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++){
String s = sc.next();
switch (s) {
case "push":
int num = sc.nextInt();
push(num);
break;
case "size":
sb.append(size());
sb.append("\n");
break;
case "pop":
sb.append(pop());
sb.append("\n");
break;
case "empty":
sb.append(empty());
sb.append("\n");
break;
case "top":
sb.append(top());
sb.append("\n");
break;
}
}
System.out.print(sb);
}
static int push(int num){
top++;
stack[top] = num;
return 0;
}
static int size(){
int size = top + 1;
return size;
}
static int pop(){
if(top > -1){
return stack[top--];
}
else{
return -1;
}
}
static int empty(){
if(top > -1){
return 0;
}
else{
return 1;
}
}
static int top(){
if(top > -1) {
return stack[top];
}
else{
return -1;
}
}
}
728x90
반응형