<문제>
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
<시간 복잡도>
아마 append 의 시간 복잡도가 o(n)으로 알고 있다.
<코드>
import sys
n = int(sys.stdin.readline())
stack = []
count = 0
answer = []
flag = True
for i in range(0,n):
x = int(sys.stdin.readline())
while count < x :
count += 1
stack.append(count)
answer.append("+")
if stack[-1] == x:
stack.pop()
answer.append("-")
else:
flag = False
print("NO")
break
if flag:
for i in range(len(answer)):
print(answer[i])
<해설>
이 문제는 문제가 이해가 안되서 힘들었다. 이게 한국말이 맞나? 이게 무슨 말이지하면서 풀었는데
결국 다른분의 문제 해설을 보고 문제를 이해한후 해결했다.
https://assaeunji.github.io/python/2020-05-04-bj1874/
[백준] 1874번 스택 수열 파이썬 풀이
난이도: 하 풀이시간: 20분 분류: 스택 링크: [link]
assaeunji.github.io
참고한 블로그이다. 아무튼 끝
반응형
'알고리즘 공부 > 기타' 카테고리의 다른 글
[백준] 11478번 서로 다른 부분 문자열의 개수 - python (0) | 2022.06.20 |
---|---|
[백준] 11659번 구간 합 구하기 4 - python (0) | 2022.06.17 |
[프로그래머스] 영어 끝말잇기 - python (0) | 2022.06.07 |
LIS(Longest Incresing Sequence) - 최장 증가 수열 (0) | 2022.04.14 |
[백준] 11286번 절댓값 힙- 파이썬 (0) | 2022.03.05 |