백준에서 문제 보기 : https://www.acmicpc.net/problem/1874
난이도
실버 3
알고리즘
1) N번 반복 입력
2) count로 값 세면서 stack에 저장 , 동시에 result 스택에도 '+' 저장
3) stack[-1] 번째 값이 입력값과 같을때 stack pop , result '-' 아닐시 NO
해결 방안
문제에서 요구하는 사항은 '스택'을 구현하여 해결하는 개념을 요구합니다
import sys
input = sys.stdin.readline
N = int(input())
stack = []
result = []
count = 0
flag = True
for i in range(N):
num = int(input())
while count < num:
count += 1
stack.append(count)
result.append('+')
if stack[-1] == num:
stack.pop()
result.append('-')
else:
flag = False
break
if flag:
print("\n".join(result))
else:
print('NO')
출력
'코딩테스트' 카테고리의 다른 글
백준(Baekjoon) 1463번 : 1로 만들기 with Python (0) | 2021.01.22 |
---|---|
백준(Baekjoon) 1080번 : 행렬 with Python (0) | 2021.01.22 |
백준(Baekjoon) 11399번 : ATM with Python (0) | 2021.01.21 |
[Baekjoon] 백준 11047번 : 동전 0 with Python (0) | 2021.01.21 |
[Baekjoon] 백준 9012번 : 괄호 with Python (0) | 2021.01.21 |
댓글