백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택
반응형
예제 설명
push 1 | stack = [ 1 ] |
push 2 | stack = [ 1,2 ] |
top | stack = [ 1,2 ] 이므로 stack top = 2 출력 |
size | stack = [ 1,2 ]이므로 size = 2 출력 |
empty | stack = [ 1,2 ]이므로 empty가 아니므로 0 출력 |
pop | stack = [ 1,2 ]이므로 pop이므로 2 출력 |
pop | stack = [ 1 ]이므로 pop이므로 1 출력 |
pop | stack = [ ]이므로 pop할 게 없어서 -1 출력 |
size | stack = [ ]이므로 size는 0 출력 |
empty | stack = [ ]이므로 empty이므로 1 출력 |
pop | stack = [ ]이므로 pop할 게 없어서 -1 출력 |
push 3 | stack = [ 3 ] |
empty | stack = [ 3]이므로 empty가 아니므로 -1 출력 |
top | stack = [ 3 ]이므로 stack top = 3 출력 |
① 명령 수 만큼 명령을 for문 돌리기
②
1 ) " "가 있는 경우 : push 일 경우는 무조건 " "(띄어쓰기)가 들어가므로 split을 사용해서 push 뒤에 숫자를 list에 append
2) "top"인 경우 : 스택의 가장 윗 부분을 출력하는 것은 가장 마지막에 들어온 값을 출력하므로
스택의 길이가 0이 아닐 경우 [-1] 인덱스의 값을 출력 | 스택의 길이가 0인 경우 -1 출력
3) "size"인 경우 : 스택의 사이즈를 출력
4) "empty"인 경우 : 스택의 길이가 0이 아닐 경우 print(0) | 스택의 길이가 0인 경우 print(1)
5) "pop"인 경우 : 스택의 길이가 0이 아닐 경우 pop하고 스택의 길이가 0인 경우 print(-1)
💻 Python(파이썬)
import sys
n = int(sys.stdin.readline())
q =[]
for i in range(n):
l = sys.stdin.readline().strip()
if " " in l:
p,num = l.split()
if p=="push":
q.append(num)
elif l=="top":
if len(q)!=0:
print(q[-1])
else:
print(-1)
elif l=="size":
print(len(q))
elif l=="empty":
if len(q)!=0:
print(0)
else:
print(1)
elif l=="pop":
if len(q)!=0:
print(q.pop())
else:
print(-1)
💻 Java(자바)
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Stack<Integer> s = new Stack<>();
for(int i=0;i<n;i++){
String l = br.readLine();
if(l.contains(" ")){
String[] p = l.split(" ");
s.add(Integer.parseInt(p[1]));
}
else if(l.equals("top")){
if(s.size()==0){
System.out.println("-1");
}else{
System.out.println(s.peek());
}
}
else if(l.equals("size")){
System.out.println(s.size());
}
else if(l.equals("empty")){
if(s.size()==0){
System.out.println("1");
}else{
System.out.println("0");
}
}else if(l.equals("pop")){
if(s.size()==0){
System.out.println("-1");
}else{
System.out.println(s.pop());
}
}
}
}
}
반응형
'[백준] Python,Java로 풀기📖 > 자료구조' 카테고리의 다른 글
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조 (0) | 2022.07.03 |
---|---|
백준 5430(AC) -Python(파이썬) - 자료구조 (0) | 2022.06.08 |
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐) (0) | 2022.06.07 |
백준 1927(최소 힙) - Python(파이썬) - 자료구조 (0) | 2022.06.01 |
백준 11279(최대 힙) - Python(파이썬) - 자료구조 (0) | 2022.05.31 |