728x90
반응형
반응형
🙆♂️문제
🙋♂️풀이
🚀 입력받기
import sys
n = int(sys.stdin.readline())
com = [list(sys.stdin.readline().split()) for _ in range(n)]
시간 제한이 있어서 sys.stdin.readline()으로 입력을 받아야 합니다.
명령어 수와 명령어들을 입력받습니다.
🚀 문제 풀이 핵심 & 출력
stack=[]
for i in com:
arrLen = len(stack)
if i[0] == 'push':
stack.append(i[1])
elif i[0] == 'pop':
if arrLen==0:
print(-1)
else:
print(stack[arrLen-1])
stack.pop(arrLen-1)
elif i[0] == 'size':
print(arrLen)
elif i[0] == 'empty':
if arrLen==0:
print(1)
else:
print(0)
elif i[0] == 'top':
if arrLen==0:
print(-1)
else:
print(stack[arrLen-1])
stack 리스트를 선언해서 stack처럼 사용합니다.
반복문을 사용하여 명령어들을 수행합니다.
if i[0] == 'push':
stack.append(i[1])
push 명령어는 간단하게 stack 리스트에 append 합니다.
elif i[0] == 'pop':
if arrLen==0:
print(-1)
else:
print(stack[arrLen-1])
stack.pop(arrLen-1)
pop 명령어는 리스트의 마지막 값을 제거합니다.
그래서 위에서 선언했던 리스트의 길이 - 1 번째 인덱스 값을 출력하고 삭제합니다.
리스트 길이가 0이라면 -1을 출력합니다.
elif i[0] == 'size':
print(arrLen)
스택의 정수 개수는 길이와 같기 때문에 리스트 길이를 출력합니다.
elif i[0] == 'empty':
if arrLen==0:
print(1)
else:
print(0)
리스트의 길이가 0이라면 스택에 값이 없는 것이므로 1을 출력하고 아니면 0을 출력합니다.
elif i[0] == 'top':
if arrLen==0:
print(-1)
else:
print(stack[arrLen-1])
스택 맨 위의 값을 출력하는 것으로 리스트의 가장 마지막 값을 출력합니다.
728x90
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][Python] 9012. 괄호 (0) | 2022.08.23 |
---|---|
[백준][Python] 9093. 단어 뒤집기 (0) | 2022.08.23 |
[백준][Python] 18870. 좌표 압축 (0) | 2022.08.23 |
[백준][Python]10814. 나이순 정렬 (0) | 2022.08.22 |
[백준][Python] 1181. 단어 정렬 (0) | 2022.08.22 |