728x90
📚문제
📝풀이
# 1874번 스택 수열
import sys
n = int(input())
stack = []
answer = []
flag = 0
cnt = 1
# sys.stdin.readline().strip()
for _ in range(n):
num = int(input())
while cnt <= num:
stack.append(cnt)
answer.append('+')
cnt += 1
if stack[-1]==num:
stack.pop()
answer.append('-')
else:
print('NO')
flag = 1
break
if flag == 0:
for i in answer:
print(i)
Bronze III까지 차근차근 풀다가
solved.ac에서 CLASS라는 배너를 발견했다
프로그래밍 문제 해결에서 자주 마주하는 주제와 트릭들을 레벨별로 모아놓았다
CLASS1은 다 풀고 CLASS 2를 도전 중인데
중간 중간 실버도 섞여있다
이번 문제는
문제 이름도 그렇고 문제 분류도 자료구조 / 스택 으로 되어 있어서
자료구조 및 스택에 대해 공부하고 문제풀이도 해볼 겸 시도해 보았다
정말 어렵다...
심지어 구글링해서 코드를 참고하도 이해가 안되서 하나씩 손필기 해보면서 이해를 할 수 있었다
이런 문제는 직접 해보고 각 케이스에서 변수가 어떻게 바뀌는지 봐야
문제와 해답이 이해가 되는 스타일이어서 input 값 별로 확인해봤다
1) num = 4일때
2) num = 3일때
3) num = 6일때
4) num = 8일때
.
.
.
.
이런 식으로 stack의 모든 값은 pop되고
answer 는 예제의 답과 같은 형태를 가진다
728x90