728x90
반응형
스택을 활용해서 풀어야 되는 문제이다. 리스트 안에 여러 개의 스택이 들어있는 구조이다.
else문 안에 있는 아래 코드를 생각하지 못해서 계속 틀렸었다.
if li[i] != [] and li[i][-1] == p:
continue
해답 코드
import sys
N, P = map(int, sys.stdin.readline().split())
li = [[] for _ in range(6)]
res = 0
for _ in range(N):
i, p = map(int, sys.stdin.readline().split())
i -= 1
if li[i] == [] or li[i][-1] < p:
li[i].append(p)
res += 1
else:
while li[i] != [] and li[i][-1] > p:
li[i].pop()
res += 1
if li[i] != [] and li[i][-1] == p:
continue
li[i].append(p)
res += 1
print(res)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10845번 큐(python) (0) | 2021.03.05 |
---|---|
백준 알고리즘 2812번 크게 만들기(python) (2) | 2021.03.05 |
백준 알고리즘 1935번 후위 표기식2(python) (0) | 2021.03.05 |
백준 알고리즘 3986번 좋은 단어(python) (0) | 2021.03.05 |
백준 알고리즘 4949번 균형잡힌 세상(python) (0) | 2021.03.05 |