https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
import java.util.Scanner;
public class Main {
public static int[] stack;
public static int size = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int N = in.nextInt();
stack = new int[N];
for(int i = 0; i < N; i++) {
String str = in.next();
switch (str) {
case "push":
push(in.nextInt());
break;
case "pop":
sb.append(pop()).append('\n');
break;
case "size":
sb.append(size()).append('\n');
break;
case "empty":
sb.append(empty()).append('\n');
break;
case "top":
sb.append(top()).append('\n');
break;
}
}
System.out.println(sb);
}
public static void push(int item) {
stack[size] = item;
size++;
}
public static int pop() {
if(size == 0) {
return -1;
}
else {
int res = stack[size - 1];
stack[size - 1] = 0;
size--;
return res;
}
}
public static int size() {
return size;
}
public static int empty() {
if(size == 0) {
return 1;
}
else {
return 0;
}
}
public static int top() {
if(size == 0) {
return -1;
}
else {
return stack[size - 1];
}
}
}
[풀이]
기본적인 스택에 대한 구조를 사용하여 문제풀이를 진행하였습니다.
스택을 구현함에 있어서 아래에 자료를 참고하였습니다!
https://st-lab.tistory.com/174
자바 [JAVA] - Stack (스택) 구현하기
자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중
st-lab.tistory.com
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] #11652 카드 (0) | 2023.01.29 |
---|---|
[백준/python] 14561번: 회문 (0) | 2023.01.29 |
[백준/C++]14561번 회문 (0) | 2023.01.29 |
[백준/python] 13410 거꾸로 구구단 (0) | 2023.01.29 |
[백준/python] 3029 경고 (0) | 2023.01.29 |