알고리즘 문제풀이/BOJ [BOJ] 백준 10828 스택 자바(java) 풀이 (자바 스택 메소드) - BOJ 10828번 스택 자바(java) 풀이 랭크 : 실버4 메모리: 17728KB 시간: 252ms 백준 10828번 스택 문제 정리 스택을 구현하고 다음 명령들을 처리해라. push X: 정수 X를 스택에 넣는다. pop: 스택에서 가장 위에 있는 정수를 빼고, 출력 한다. 스택이 비었다면 -1 출력 size: 스택의 크기를 출력한다. empty: 스택이 비었다면 1 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 비어있다면 -1 출력push 명령을 제외하고 모두 값을 출력해야 합니다. 문제 풀이 이 문제는 큐문제와 유사합니다. 이도 풀어보시는걸 추천드립니다!!java에 구현되어 있는 Stack을 이용하여 문제를 풉니다. Stack의 메소드 몇 개만 알면 풀 수 있습니다.stack을 사용하기 위해서는 다음을 추가해야 합니다. import java.util.Stack; push: push() 메소드를 이용하여 값을 넣습니다. pop: push() 메소드를 이용하여 값을 빼고 출력합니다. size: size() 메소드를 이용하여 스택의 크기를 출력합니다. empty: isEmpty()메소드를 이용하여 비어있는지 확인하고 값을 출력합니다. 비어있다면 true를 반환합니다. top: peek() 메소드를 이용하여 스택의 가장 위에 있는 정수를 출력합니다. 이는 이 메소드를 사용하지 않고 가장 마지막에 넣은 값을 이용하여 출력할 수도 있습니다. 백준 10828 스택 자바 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Stack; class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringTokenizer st = null; Stack<Integer> stack = new Stack<>(); for(int i=0; i<n; i++){ st = new StringTokenizer(br.readLine(), " "); switch(st.nextToken()){ case "push": stack.push(Integer.parseInt(st.nextToken())); break; case "pop": if(!stack.isEmpty()) System.out.println(stack.pop()); else System.out.println(-1); break; case "size": System.out.println(stack.size()); break; case "empty": if(!stack.isEmpty()) System.out.println(0); else System.out.println(1); break; case "top": if(!stack.isEmpty()) System.out.println(stack.peek()); else System.out.println(-1); break; } } } } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Code by horang Contents 당신이 좋아할만한 콘텐츠 [BOJ] 백준 1158번 요세푸스 문제 자바(java) 풀이(큐, 리스트) 2020.03.16 [BOJ] 10815번 숫자카드 자바(java) 풀이 (이진탐색) 2020.03.16 [BOJ] 2164번 카드2 자바(java) 풀이 (queue 또는 규칙찾기) 2020.03.15 [BOJ] 백준 1018번 체스판 다시 칠하기 자바(java) 풀이 (완전탐색) 2020.03.15 댓글 0 + 이전 댓글 더보기