package stack;
import java.util.Scanner;
// .idea 폴더 : 프로젝트의 구조 정보 등 프로젝트 관련 메타데이터가 들어 있음
// iml 파일 : 인텔리제이 모듈 구성에 대해 xml 형태로 기술해 놓은 파일
// @override: 상속을 받아서 메서드를 만들때 모든 메서드는 같은걸 상속받게되는데 이때 맘에 들지않는 것을 내가 원하는대로 재정의하겠다는 의미
/*
static : 이미 객체화 되어 바로 사용가능
non-static : 아직 객체화되지 않아 new 키워드를 통해 생성한 후 사용 가능
*/
public class Main {
static int[] arr;
static int count,incnt;
public static void main(String[] args){
Scanner input = new Scanner(System.in);
count = input.nextInt(); // 입력받은 값을 INT 로 받겠다는 의미 ( next(), nextByte(), nextFloat(), nextLine() 등이 존재 )
arr = new int[count]; // 초기값 0으로 할당됨
incnt = 0;
push(5);
push(1);
push(3);
push(9);
for(int i=0; i<incnt; i++){
System.out.print(arr[i]+" ");
}
System.out.println(pop());
System.out.println(pop());
System.out.println(pop());
System.out.println(pop());
}
public static void push(int input){
if(incnt == count){
System.out.println("스택이 초과하였습니다.\n");
throw new SecurityException();
}else{
arr[incnt++] = input;
}
}
/*
throw : 에러를 고의로 발생시킴
throws : 자신을 호출한 상위 메소드로 에러를 던지는 역할
*/
public static int pop(){
if(incnt <= 0){
System.out.println("빈 스택입니다.");
throw new SecurityException();
}
return arr[incnt--];
}
}