본문 바로가기
Problem Solving/백준

백준 23253 자료구조는 정말 최고야 [파이썬, 구현, 자료 구조, 애드 혹, 스택]

by JC_ 2023. 3. 22.
 

23253번: 자료구조는 정말 최고야

위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다.

www.acmicpc.net

b, d = map(int, input().split())

tf = True                                       # yes no를 판단할 변수
for _ in range(d):                              # 더미의 수만큼 돌아
    b_num = int(input())                        # 한 더미의 책의 수 b_num을 받아와
    b_list = list(map(int, input().split()))    # 한 더미의 b_list를 받아와서 
    for b in range(b_num - 1):                  # b_list를 돌려보는거야
        # 이 문제는 따로 스택을 활용할 필요없이 각각의 더미들이 내림차순으로만 정렬되어 있으면 yes가 나오는 문제야
        if b_list[b] < b_list[b + 1]:           # 그런데 중간이라도 오름차순이 끼어있다면 
            tf = False                          # No가 나와야해
            break                               # for문은 더이상 의미 없으니 나와
    if not tf:                                  # No가 나오면
        break                                   # 밖의 for문도 더이상 의미 없으니 나와

print('Yes' if tf else "No")                    # tf의 결과에 따라 yes 나 no 출력

댓글