성장일기
[python] 백준 1874 - 스택 수열 본문
https://www.acmicpc.net/problem/1874
Q> 기본 스택 문제
1부터 n까지 수를 스택에 넣었다가 뽑아서 늘어놓음으로써 하나의 수열을 만듦
어떤 순서로 push와 pop을 해야하는지 작성
push는 +로 pop은 -로 표현, 불가능한 경우 NO
💥 출력 초과 코드
NO인 경우 NO만 출력되어야 하는데 앞의 연산이 모두 출력됨
import sys
input = sys.stdin.readline
n = int(input().rstrip())
stack = []
cnt = 1
for i in range(n):
data = int(input().rstrip())
while cnt <= data: # 1부터 시작하는 수열, 입력데이터까지 삽입
stack.append(cnt)
cnt += 1
print('+')
if stack[-1] == data: # 스택의 마지막이 입력데이터와 같을때 pop
stack.pop()
print('-')
else:
print('NO') # 아니면 NO
✨ result 리스트를 만들어서 넣고
그것을 출력
import sys
input = sys.stdin.readline
n = int(input().rstrip())
stack = []
result = []
cnt = 1
for i in range(n):
data = int(input().rstrip())
while cnt <= data: # 1부터 시작하는 수열, 입력데이터까지 삽입
stack.append(cnt)
cnt += 1
result.append('+')
if stack[-1] == data: # 스택의 마지막이 입력데이터와 같을때 pop
stack.pop()
result.append('-')
else:
print('NO') # 아니면 NO
exit(0)
print('\n'.join(result))
'알고리즘 문제' 카테고리의 다른 글
골드 4 😥 (0) | 2022.02.07 |
---|---|
[python] 백준 17299 - 오등큰수 (0) | 2022.02.07 |
[python] 백준 6064 - 카잉 달력 (0) | 2022.01.26 |
[python] 백준 1374 - 강의실 (0) | 2022.01.21 |
골드 5 🎉 (0) | 2022.01.20 |