Programming/백준

[실버 5] 백준 23253 - 자료구조는 정말 최고야 (파이썬)

pental 2025. 4. 15. 14:37

https://www.acmicpc.net/problem/23253

풀이

총 N개의 책을 M개의 스택에 나눠담았다. 각 스택에는 책들이 위에서부터 아래로 순서대로 쌓여있다. 이 스택들을 하나씩 꺼내 맨 위 책부터 한권씩 빼서 한 줄로 정렬할 수 있다면 Yes, 아니면 No를 출력한다.

정렬 조건은 항상 앞 책 번호가 뒤 책번호보다 커야한다.

즉, 각 스택마다 위에서 아래 방향으로 책 번호가 내림차순인지 확인하고, 한 스택이라도 오름차순 형태가 있으면 젠체적으로 정렬이 불가능하므로 No를 출력한다.

코드

# 백준 23253 - 자료구조는 정말 최고야
# 분류 : 구현

import sys
input = sys.stdin.readline

N, M = map(int, input().split())

possible = True
for _ in range(M) :
    K = int(input())
    A = list(map(int, input().split()))

    for i in range(1, len(A)) :
        if A[i - 1] < A[i] :
            possible = False
            break

if possible :
    print("Yes")
else :
    print("No")