Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- deep learning
- DFS
- cnn optuna
- BFS
- Machine learning
- YouTube
- Python
- 백준
- 프로그래머스
- CCP자격증
- Crawling
- ASAC5기
- JSON
- 크롤링
- ASAC14일차
- text summarization
- ML
- join
- sql eda
- selenium
- ASAC
- 파이썬
- SQL
- 뷰티 광고
- 데이터분석
- 파이썬 이미지 처리
- 머신러닝
- EDA
- pandas
- Shorts
Archives
- Today
- Total
낼름낼름 동동이
[백준 28278] 스택 2 본문
문제 해석
- 명령의 종류별로 반복해서 일어나므로 함수로 지정해서 기능을 만들어야겠다고 생각했다.
- 명령을 코드화 해보면
- 1번 명령은 stack에 append를 해주는 것
- 2번 명령은 stack이 0이 아닐 때 pop()을 하는 것
- 3번 명령은 stack에 들어간 원소 개수 출력
- 4번은 비어있는지 조건 체크해서 1, 0 출력
- 5번은 pop하지 않고 다음에 출력될 stack[-1]을 출력하는 것이다
에러 처리
1. order_list에 반복해서 입력을 받을 때, input()을 사용했더니 시간 초과가 일어나서 sys.stdin.readline().split() 를 사용하여 해결하였다.
2. 몇번의 indexerror가 있어서 어떤 부분이 문제인지 살펴봤더니 인터넷에서 복사해온 sys.stdin.readline() 코드를 받는 부분이 command로 지정되어 있어서 내가 사용하던 order_list에 입력을 받고 있지 않아서 생기는 문제 였다.
최종 코드
import sys
#명령의 종류 5개 구현하기
# 1) 정수 x를 스택에 넣기
def push_stack(x):
stack.append(x)
# 2) 스택에 정수가 있다면 맨 위의 정수를 빼고 출력 없다면 -1 대신 출력
def pop_stack(x):
if stack:
return stack.pop()
else:
return -1
# 3) 스택에 들어있는 정수 개수 출력
def len_stack(stack):
return len(stack)
# 4) 스택이 empty 1, 아니면 0 출력
def is_empty_stack(stack):
if stack:
return 0
else:
return 1
# 5) 스택에 정수가 있다면 맨위 정수 출력, 없다면 -1
def is_int_stack(stack):
if stack:
return stack[-1]
else:
return -1
######################
#명령의 수를 받을 입력 받기
N = int(input())
# 입력 최대 횟수
stack = []
order_list = []
for _ in range(N):
order_list = sys.stdin.readline().split()
if order_list[0] == '1':
push_stack(order_list[1])
elif order_list[0] == '2':
print(pop_stack(stack))
elif order_list[0] == '3':
print(len_stack(stack))
elif order_list[0] == '4':
print(is_empty_stack(stack))
elif order_list[0] == '5':
print(is_int_stack(stack))
else:
pass
'코딩 > Backjun' 카테고리의 다른 글
[백준] 2745번 (1) | 2024.11.02 |
---|---|
[백준 25305] 커트라인 (python3) (0) | 2024.03.28 |
[백준 1181] 단어 정렬 (python3) (0) | 2024.03.27 |
[백준 2444] 별 찍어보기 (python3) (0) | 2024.03.26 |
[백준 2798] 블랙잭 (Java) (0) | 2021.04.07 |