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
반응형

+ Recent posts