일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- two pointer
- 백트래킹
- Algorithm
- ML
- python3
- sort
- dfs
- Python
- 재귀함수
- 투포인터
- 파이썬
- 재귀
- CS
- 1일1솔
- Virtual Memory
- BF
- backtracking
- Loss
- Github
- 코테
- 브루트포스
- OS
- 프로그래머스
- 백준
- 코딩테스트
- 머신러닝
- 정렬
- 신나는함수실행
- 알고리즘
- 완전탐색
Archives
- Today
- Total
이것저것 공부 기록하기
[Algorithm] 1일1솔 - 백준 1874 스택 수열 (python3) 본문
문제링크
문제설명
push, pop 을 해가며 pop을 이용해 입력 받은 수열을 만드는 문제이다.
문제의 예시를 살펴보자.
8 4 3 6 8 7 5 2 1 과 같이 입력을 받을 때, 수열 리스트 = [4,3,6,8,7,5,2,1] 이 된다.
우선 push를 4번 하면 스택에 다음과 같이 수가 담긴다.
s = [1,2,3,4]
여기서 입력 받은 수열과 같게 하려면 pop을 두 번 해서 수열 리스트에 담아주면 [4,3] 과 같이 된다.
문제풀이
import sys
input = sys.stdin.readline
n = int(input()); stack = []
seq = []; cnt = 1
tmp = True
for i in range(n):
num = int(input())
while cnt <= num:
if cnt > num:
break
stack.append(cnt)
seq.append('+')
cnt += 1
if stack[-1] == num:
stack.pop()
seq.append('-')
else:
tmp = False
if tmp == False:
print('NO')
else:
for x in seq:
print(x)
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm] 1일1솔 - 백준 1904 01타일 (python3) (0) | 2022.03.09 |
---|---|
[Algorithm] 1일1솔 - 백준 9184 신나는 함수 실행 (python3) (0) | 2022.02.08 |
[Algorithm] 1일1솔 - 백준 9663 스도쿠 (python3) (0) | 2022.01.24 |
[Algorithm] 1일1솔 - 백준 14889 스타트와 링크 (python3) (0) | 2022.01.21 |
[Algorithm] 1일1솔 - 백준 14888 연산자 끼워넣기(python3) (0) | 2022.01.20 |
Comments