728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 명령어의 개수를 입력받는다. N = int(sys.stdin.readline())
- 빈 스택을 생성한다. stack = list()
- 명령어 개수만큼 반복하며 for _ in range(N)
- 1개 이상의 명령어가 입력될 수 있으므로 명령어를 공백으로 분리해 리스트에 저장한다. op = list(map(int, sys.stdin.readline().split()))
- 만약 명령어가 1이면 같이 입력받은 데이터를 스택에 추가한다. if (op[0] == 1): stack.append(op[1])
- 만약 명령어가 2이면 elif (op[0] == 2)
- 스택이 비어있는지 확인하고 비어있지 않으면 if (len(stack) > 0)
- 제일 위의 정수를 제거해 출력한다. print(stack.pop())
- 반면에 스택이 비어 있으면 -1을 출력한다. else: print(-1)
- 만약 명령어가 3이면 스택에 들어있는 정수의 개수를 출력한다. elif (op[0] == 3): print(len(stack))
- 만약 명령어가 4이면 elif (op[0] == 4)
- 스택이 비어있으면 1을 출력하고 if (len(stack) == 0): print(1)
- 비어있지 않으면 0을 출력한다. else: print(0)
- 만약 명령어가 5이면 else
- 스택에 정수가 있으면 제일 위의 정수를 출력하고 if (len(stack) > 0): print(stack[-1])
- 스택에 정수가 없으면 -1을 출력한다. else: print(-1)
반응형
3. 소스코드
import sys
N = int(sys.stdin.readline())
stack = list()
for _ in range(N):
op = list(map(int, sys.stdin.readline().split()))
if (op[0] == 1):
stack.append(op[1])
elif (op[0] == 2):
if (len(stack) > 0):
print(stack.pop())
else:
print(-1)
elif (op[0] == 3):
print(len(stack))
elif (op[0] == 4):
if (len(stack) == 0):
print(1)
else:
print(0)
else:
if (len(stack) > 0):
print(stack[-1])
else:
print(-1)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 28279번 : 덱 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (2) | 2023.12.05 |
---|---|
[백준] 18258번 : 큐 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.04 |
[백준] 12789번 : 도키도키 간식드리미 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (1) | 2023.12.03 |
[백준] 4949번 : 균형잡힌 세상 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.12.02 |
[백준] 13909번 : 창문 닫기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.30 |
[백준] 17103번 : 골드바흐 파티션 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (1) | 2023.11.29 |
[백준] 4134번 : 다음 소수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (1) | 2023.11.28 |
[백준] 2485번 : 가로수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.11.27 |