10828번 스택(구현) Java

10828번 스택(구현) Java

반응형

문제

정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 총 다섯 가지이다.

push X: 정수 X 를 스택에 넣는 연산이다 .

pop: 스택에서 가장 위에 있는 정수를 빼고 , 그 수를 출력한다 . 만약 스택에 들어있는 정수가 없는 경우에는 -1 을 출력한다 .

size: 스택에 들어있는 정수의 개수를 출력한다 .

empty: 스택이 비어있으면 1, 아니면 0 을 출력한다 .

top: 스택의 가장 위에 있는 정수를 출력한다 . 만약 스택에 들어있는 정수가 없는 경우에는 -1 을 출력한다 .

입력

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.

출력

출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다.

출처:

##문제이해##

스택의 구조를 직접 구현해보는 문제..! 맨날 만들어진걸 사용하다가 메서드를 간단하게라도 구현하는 부분이 나왔다.

참고한 주소 https://st-lab.tistory.com/175

##코드##

import java.util.Scanner; public class boj_10828 { private static int[] stack; private static int size=0;//최초 사이즈 설정 public static void main(String[] args) { /* * push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. */ Scanner sc = new Scanner(System.in); StringBuffer sb = new StringBuffer(); int N = sc.nextInt(); stack = new int[N]; for(int i=0; i

"); break; case "size": sb.append(size()).append("

"); break; case "empty": sb.append(empth()).append("

"); break; case "top": sb.append(top()).append("

"); break; } } System.out.println(sb); } /** * 입력받은 number를 배열에 넣고 사이즈를 증가시키는 메서드 * @param number */ public static void push(int number) { stack[size] = number; size++; } public static int pop() { //데이터 없는경우 -1 if(size==0) { return -1; }else { int result = stack[size-1]; stack[size-1]=0; //값 초기화 size--; return result; } } /** * 현재 스택의 사이즈를 반환하는 메서드 * @return stack.length */ public static int size() { return size; } /** * 스택이 비어있는지체크 비었으면 1 아니면 0을 반환 * @return 1,0 */ public static int empth() { if(size==0) { return 1; }else{ return 0; } } public static int top() { //데이터 없는경우 -1 if(size==0) { return -1; }else { //맨 마지막 숫자를 반환해준다. return stack[size-1]; } } }

반응형

from http://lollaziest.tistory.com/134 by ccl(A) rewrite - 2021-09-18 00:01:58