Ex) 첫째줄에 N이 입력된다. (1<=N<=2001<=N<=200)
둘째 줄 부터 각 줄에 하나씩 명령어 N개가 입력된다.
출처: https://codeup.kr/problem.php?id=3102
<hide/>
package D220316;
import java.util.Scanner;
interface IStackble100{
boolean empty();
void push(int nData);
int peek();
void pop();
void print();
}
public class STL implements IStackble100{
private int[] mnArray;
private int mnCapacity;
private int mnTop;
public STL (int nCapacity) {
mnArray = new int[nCapacity];
mnCapacity = nCapacity;
mnTop = 0;
}
public boolean empty() {
return (mnTop == 0);
}
public void push(int nData) {
if( true == full()) {
System.out.println("===============\n");
System.out.println("Stack Overflow!");
System.out.println("\n");
return;
}
mnArray[mnTop++] = nData;
}
public int peek() {
if( true == empty()) {
// System.out.println("Stack Underflow!");
return -1;
}
return mnArray[mnTop - 1];
}
public void pop() {
if(true == empty()) {
// System.out.println("Stack Underflow!");
return;
}
--mnTop;
}
public boolean full() {
return (mnCapacity == mnTop);
}
// 연습용 프린트
public void print(){
System.out.println("===============\n");
System.out.printf("Stack elements: \n");
for(int i = 0 ;i < mnTop ; ++i) {
System.out.printf("%d ", mnArray[i]);
}
System.out.println();
System.out.println("===============\n");
}
public static void main(String[] args) {
int nCapacity = 100;
STL st = new STL(nCapacity);
Scanner scan = new Scanner(System.in);
int num = scan.nextInt(); // 반복문을 실행할 횟수
for(int i = 0; i < num; ++i) {
String str = scan.next();
if(str.equals("top()")) {
System.out.println( st.peek());
}else if(str.equals("pop()")) {
st.pop();
}
else if(str.equals("size()")) {
System.out.println(st.mnTop);
}
else if( str.equals("empty()")) {
if(st.empty() == true) {
System.out.println("true");
}else {
System.out.println("false");
}
}else if(str.equals("push(")){
int input = scan.nextInt();
st.push(input);
String Braket = scan.next(); // push( input ')'를 스캔 처리
}
}
// scan.close();
// st.print(); // 연습용 출력
}
}
Note) 실행 결과
'자료구조와 알고리듬 With Java > [Study] BAEKJOON 프로그래머스 CodeUp LeetCode' 카테고리의 다른 글
Code up 그림 개수 세기 (0) | 2022.04.20 |
---|---|
Codeup 4503 BaekJoon 2606 바이러스 DFS (0) | 2022.04.19 |
Code up 1929 재귀함수 우박수 (3n+1) (reverse) (0) | 2022.03.16 |
Code up 3117 0은 빼! (0) | 2022.03.16 |
Code up 2016 천단위 구분기호 (0) | 2022.03.16 |