Programming_prob/BaekJoon
[백준]1872번 스택 수열
YongArtist
2020. 9. 11. 18:36
from sys import stdin
if __name__ == '__main__':
n = int(input())
seq = map(lambda x: int(x.rstrip()), stdin.readlines())
cnt, stack, result = 1, [], []
for i in seq:
while cnt <= i:
stack.append(cnt)
result.append('+\n')
cnt += 1
if stack.pop() != i:
print('NO\n')
break
else:
result.append('-\n')
print(''.join(result))
출력 초과 오류가 발생하는 문제가 있다. 계속 이것만 잡고 있을 수 없어서 다른 문제 푸는데,, 이것도 해결할 방법을 차자야겠다.
혹시 이 글을 보시는 분께서 아신다면 댓글 남겨주시면 감사하겠습니다.
from sys import stdin
n = int(stdin.readline())
n_list = map(lambda x: int(x.rstrip()), stdin.readlines())
def func():
cnt, stack, result = 1, [], []
for i in n_list:
while cnt <= i:
stack.append(cnt)
result.append('+')
cnt += 1
if stack.pop() != i:
return 'NO'
else:
result.append('-')
return '\n'.join(result)
print(func())
다른 예 소스코드는 잘 수행됨을 확인할 수 있습니다.