////
Search
Duplicate
💯

백준 10828(스택)(JAVA 자바)

생성일
2022/02/22 05:33
태그
스택이란?
- 자료 구조 중 하나
- 상자에 물건을 쌓아 올리듯 데이터를 쌓는 자료구조 - 나중에 들어간것이 먼저 나오는 Last in First out 구조
스택 특징
- 먼저 들어간 자료가 나중에 나옴 LIFO구조(Last in First Out)
- 시스템 해킹에서 버퍼 오버 플로우 취약점을 이용한 공격을 할때 스택 메모리에서 함
- 인터럽트 처리, 수식의 계산, 서브루틴의 복귀 번지 저장에 쓰임
- 그래프의 깊이 우선탐색에 사용 (DFS)
- 재귀적 함수를 호출 할 때 사용
정답 코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class N10828 { static Stack<Integer>s= new Stack<>(); static inttop; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); String com; int p=0; StringTokenizer st; for(int i=0;i<N;i++) { st = new StringTokenizer(br.readLine()); if(st.countTokens()==2) { com = st.nextToken(); p = Integer.parseInt(st.nextToken()); solution_push(com,p); }else { com = st.nextToken(); solution(com); } } } public static void solution_push(String com, int p) { s.push(p); top= p; } public static void solution(String com) { if(com.equals("pop")) { if(s.empty()) { System.out.println(-1); }else { System.out.println(s.pop()); } }else if(com.equals("size")) { System.out.println(s.size()); }else if(com.equals("empty")) { if(s.empty()) { System.out.println(1); }else { System.out.println(0); } }else if(com.equals("top")) { if(s.empty()){ System.out.println(-1); }else { System.out.println(s.peek()); } } } }
Plain Text
복사
관련 함수
- stack.push() : 값 추가
- stack.pop() : 값 제거 후 출력
- stack.clear() : 전체 값 제거
- stack.peek() : 가장 위의 값 출력
- stack.size() : 스택 크기 출력
- stack.empty() : 스택이 비워있는지 확인
- stack.contains() : 스택에 값이 있는지 확인