자바로 스택을 구현해보았습니다!
import java.util.Scanner;
public class 스택 {
private static int arr[] = new int[0];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=0; i<n; i++) {
String S = sc.next();
if(S.equals("push")) {
int a = sc.nextInt();
push(a);
}
else if(S.equals("pop")) {
pop();
}
else if(S.equals("empty")) {
empty();
}
else if(S.equals("top")) {
top();
}
else if(S.equals("size")){
size();
}
}
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
sc.close();
}
public static void top() { // 제일 마지막에 들어간 변수 반환
System.out.println(arr[arr.length-1]);
}
public static void size() { // 길이 반환
System.out.println(arr.length);
}
public static void empty() {
if(arr.length == 0)
System.out.println(1);
else {
System.out.println(0);
}
}
public static void push(int push) {
int[] newArr = new int[arr.length+1];
for(int i=0; i<arr.length; i++) {
if(arr.length > 0)
newArr[i] = arr[i]; // 이전 배열 복사
}
newArr[newArr.length-1] = push; // 마지막 인덱스 추가
arr = newArr; // arr에 적용
}
public static void pop() {
int[] newArr = new int[arr.length-1];
for(int i=0; i<arr.length-1; i++) {
newArr[i] = arr[i];
}
arr = newArr;
}
}
8번을 실행합니다.
1. push 1
- [1]
2. push 2
- [1, 2]
3. push 3
- [1, 2, 3]
4. push 4
- [1, 2, 3, 4]
5. pop
- [1, 2, 3]
6. push 5
- [1, 2, 3, 5]
7. push 6
- [1, 2, 3, 5, 6]
8. pop
- [1, 2, 3, 5]
'Language > Java' 카테고리의 다른 글
[Java] Interface 정리(2) (0) | 2023.07.18 |
---|---|
[Java] InterFace 정리(1) (0) | 2023.07.17 |
[Java] 자바 상속 정리 (0) | 2023.07.14 |
[Java] foreach문 사용하기 (0) | 2023.07.12 |
[Java] 접근 수준 지시자(Access-level Modifiers) (0) | 2023.07.03 |