https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
> 문제 풀이 아이디어

- 스택의 마지막 값이 입력의 첫번째 값보다 작으면 스택에 1씩 증가시킨 수를 추가한다.
- 스택의 마지막 요소 값과 입력의 첫번째 값이 일치하면 스택의 마지막 값과 입력의 첫번째 값을 뺀다.
- 위 과정을 입력리스트가 빈 리스트가 될 때까지 반복한다.
- 만일 스택의 마지막 요소 값이 입력의 첫번째 값보다 크다면 입력된 수열은 만들 수 없는 수열이므로 NO를 출력한다.
> 코드

- line 5: stack에 값이 없을 때엔 인덱스 에러가 나기 때문에 stack의 마지막요소를 대신하여 i값을 비교값으로 사용한다.
'python > 알고리즘 문제풀이' 카테고리의 다른 글
[백준 | 파이썬3] 18352 병사 배치하기 (0) | 2022.07.07 |
---|---|
[백준 | 파이썬3] 18352 특정 거리의 도시 찾기 (0) | 2022.07.07 |
[백준 | 파이썬3] 10814 나이 순 정렬 (0) | 2022.02.23 |
[프로그래머스 | 파이썬3] 약수의 개수와 덧셈 (0) | 2021.12.09 |
[프로그래머스 | 파이썬3] 실패율 - 정렬 (0) | 2021.12.08 |