티스토리 뷰
스택 구현하기
문제
이 문제에서는 스택을 구현한다. 스택은 다음 세 개의 연산을 지원한다. Push X : 스택에 정수 X를 push한다. 만약 스택이 꽉 차서 push를 할 수 없다면, “Overflow”를 출력한다. Pop : 스택에서 정수 하나를 pop한다. 만약 스택이 비어있어서 pop을 할 수 없다면, “Underflow”를 출력한다. Top : 스택의 top에 있는 정수를 출력한다. 만약 스택이 비어있다면 “NULL”을 출력한다. 크기가 n인 스택에 m개의 연산을 하는 프로그램을 작성하시오. 입력의 편의를 위해서 Push는 “1”, Pop은 “2”, Top은 “3”으로 표현한다. 다음은 크기 4인 스택에 10개의 연산이 입력으로 주어졌을 때의 입력과 출력의 예이다.
XYZ
입력
첫째 줄에 스택의 크기 n, 연산의 개수 m이 주어진다. ( 1 <= n <= 100, 1 <= m <= 1,000 ) 두 번째 줄부터 연산이 주어진다. 1은 Push, 2는 Pop, 3은 Top 연산을 의미한다.
출력
연산의 결과를 출력한다.
예제 입력
4 10
1 1
1 2
1 3
2
3
1 4
1 5
3
1 6
3
예제 출력
2
5
Overflow
5
코드
//스택구현
import java.util.*;
public class Main {
public static ArrayList<Integer> box = new ArrayList<>();
public static int[] stack;
public static int stackCount = 0;
//첫째 줄에 스택의 크기 n, 연산의 개수 m이 주어진다. ( 1 <= n <= 100, 1 <= m <= 1,000 )
// 두 번째 줄부터 연산이 주어진다. 1은 Push, 2는 Pop, 3은 Top 연산을 의미한다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//총 몇개의 숫자를 입력 받을 것인지
int a;
int b;
int c;
int d = 0;
a = sc.nextInt();
stack = new int[a];
b = sc.nextInt();
for (int i = 0; i < b; i++) {
c = sc.nextInt();
if (c == 1) {
d = sc.nextInt();
}
operation(c, d);
}
sc.close();
}
public static void operation(int op, int data) {
if (op == 1) {
if (stackCount > stack.length - 1) System.out.println("Overflow");
else {
stack[stackCount] = data;
stackCount++;
}
} else if (op == 2) {
if (stackCount <= 0) System.out.println("Underflow");
else stackCount--;
} else if (op == 3) {
if (stackCount <= 0) System.out.println("NULL");
else System.out.println(stack[stackCount - 1]);
}
}
}
'알고리즘 문제 풀이 ' 카테고리의 다른 글
Merge sort (0) | 2018.10.01 |
---|---|
괄호 / 스택 (0) | 2018.10.01 |
원형큐 구현하기 (0) | 2018.10.01 |
선형큐 구현하기 (0) | 2018.10.01 |
숫자박스 - 90점 (0) | 2018.10.01 |
쿼드트리 quadtree (0) | 2018.10.01 |
전염병 (0) | 2018.09.28 |
미로찾기 (2) | 2018.09.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java #백준 #알고리즘 #로또 #6603
- Terminal
- Game
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- java #알고리즘 #백준 #패션왕신해빈
- Javascript
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- java #오르막수 #백준 #알고리즘
- java #알고리즘 #백준 #퇴사
- java #알고리즘 #백준
- 2630번
- java #백준 #알고리즘 #2805 #나무자르기
- 1992번
- 알고리즘
- webpack
- 색종이자르기
- javascript #연속합 #알고리즘 #백준
- javascript #백준 #회의실배정 #알고리즘
- 백준 #java #알고리즘
- TypeScript
- 백준
- react
- java #하노이 #알고리즘 #백준
- java #알고리즘 #백준 #N과M #백트래킹
- 한글 자동 완성
- java #퀵소트 #quicksort #알고리즘 #백준
- webspider
- npm
- 쿼드트리
- javascript #백준 #알고리즘 #LCS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함