1 걸린 시간 : 40m
2 사용한 자료구조 및 개념 : 스택
💡 문제풀이 아이디어 및 어려웠던 점
💫 아이디어
1️⃣ 스택을 위한 빈 리스트를 만든다
2️⃣ 수열을 만들 수 있는지 없는지를 판단하기 위한 깃발 변수를 만든다!
3️⃣ 초기값이 1인 변수를 만들어 현재 수열의 값이랑 같을 때까지 스택에 푸쉬한다
4️⃣ 스택의 마지막 값과 현재 수열의 값이 같으면 pop하고 아니라면 수열을 만들 수 없으므로 NO를 출력한다
👻 어려웠던 점
🙅♀️
Solution Code & 주석
n = int(input())
stack = []
answer = []
cnt = 1
flag = 0
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:
print(*answer, sep='\\n')
'💡Algorithm > python' 카테고리의 다른 글
[python]2504_괄호의 값 (0) | 2023.07.11 |
---|---|
[python]10799_쇠막대기 (0) | 2023.07.10 |
[python]2346_풍선 터뜨리기 (0) | 2023.07.05 |
[python]1966_프린터 큐 (0) | 2023.07.04 |
[python]10866_덱2 (0) | 2023.07.03 |