반응형
1874 스택 수열 풀이
import sys
input = sys.stdin.readline
n = int(input())
cur = 1 # 현재 숫자
stack = [] # 담을 스택
answer = [] # 출력할 정답 스택
flag = 0 # NO를 프린트했을 때 answer 출력하지 않기 위한 flag
for i in range(n):
num = int(input())
while cur <= num: # 번호가 동일할때 까지 stack에 appned
stack.append(cur)
answer.append('+')
cur += 1
if stack[-1] == num: # 스택의 맨위가 번호랑 동일해야 pop이 가능
stack.pop()
answer.append('-')
else: # 안될 경우 못만드는 구조
print('NO')
flag = 1 # 플래그를 통해 NO를 출력했으면 answer 더 안하도록
if flag == 0:
for i in answer:
print(i)
- 블로그 및 검색 여부 : O (코드말고 로직만 참고)
- 어떻게 했을 때 스택으로 수열을 만들 수 없는지 생각하는데 시간이 걸림.
- 실버 2 이상부터는 수학적 사고력을 요한다는걸 깨달음.
- flag를 사용하여 특정 경우에만 출력하는 첫 알고리즘
반응형
'Code > 파이썬 Python' 카테고리의 다른 글
[백준/ BOJ] 2566번 : 최댓값 - [파이썬(Python)] 풀이 (0) | 2023.07.27 |
---|---|
[백준/ BOJ] 2743번 : 단어 길이 재기 문제 - [파이썬(Python)] 풀이 (0) | 2023.07.23 |
[백준/ BOJ] 10811번 : 바구니 뒤집기 문제 - [파이썬(Python)] 풀이 (0) | 2023.07.04 |
[백준/ BOJ] 10813번 : 공 바꾸기 문제 - [파이썬(Python)] 풀이 (0) | 2023.07.04 |