티스토리 뷰
그냥 간단한 스택 사용할 수 있냐 없냐를 묻는 문제.
package boj_basic.cp_1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Q10828 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Integer> stack = new Stack<>();
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++) {
String[] order = br.readLine().split(" ");
switch(order[0]) {
case "push":
stack.push(Integer.parseInt(order[1]));
break;
case "pop":
if(stack.empty())
bw.write("-1" + "\n");
else
bw.write(stack.pop() + "\n");
break;
case "size":
bw.write(stack.size() + "\n");
break;
case "empty":
if(stack.empty())
bw.write("1" + "\n");
else
bw.write("0" + "\n");
break;
case "top":
if(stack.empty())
bw.write("-1" + "\n");
else
bw.write(stack.peek() + "\n");
break;
}
}
bw.flush();
bw.close();
}
}
함수 구현 안하고 스택 제네릭 사용해서 푼 문제.
package boj_basic.cp_1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
class Stack{
private int top;
private int stArr[];
public Stack(int size) {
this.top = -1;
this.stArr = new int[size];
}
public void push(int n) {
this.stArr[++top] = n;
}
public int pop() {
if(top==-1) return -1;
return this.stArr[top--];
}
public int size() {
return top+1;
}
public int empty() {
if(top==-1) return 1;
return 0;
}
public int top() {
if(top == -1) return -1;
return this.stArr[top];
}
}
public class Q10828_1 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
Stack st = new Stack(N);
for(int i = 0; i<N; i++) {
String[] order = br.readLine().split(" ");
switch(order[0]) {
case "push":
st.push(Integer.parseInt(order[1]));
break;
case "pop":
bw.write(st.pop() + "\n");
break;
case "size":
bw.write(st.size() + "\n");
break;
case "empty":
bw.write(st.empty() + "\n");
break;
case "top":
bw.write(st.top() + "\n");
}
}
bw.flush();
bw.close();
}
}
직접 함수 구현하여 푼 문제.
확실히 제네릭 쓰는 게 편리한 거 같다^^
'알고리즘' 카테고리의 다른 글
백준 자바 9012번 괄호 (1) | 2023.03.30 |
---|---|
백준 자바 9093번 단어 뒤집기 (0) | 2023.03.29 |
백준 자바 1874번 스택수열 (1) | 2023.03.29 |
백준 #11399 java 2023.02.04 (1) | 2023.02.05 |
백준 #25305 java 2023.02.02 (1) | 2023.02.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 로그아웃
- SQL 레벨업
- EnumType.ORDINAL
- 자바
- 자바 스프링
- 다이나믹 프로그래밍
- 북마크
- 지연로딩
- elasticsearch
- 준영속
- 웹 MVC
- 스프링 커뮤니티
- SQL
- 프론트엔드
- 스프링 북마크
- 영속
- 백준 파이썬
- 비영속
- 회원탈퇴
- SQLD
- 인텔리제이
- DP
- 스프링부트
- 스프링
- JPA
- 백준
- 파이썬
- 로깅
- 웹MVC
- 커뮤니티
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함