애드 혹, 자료 구조, 구현
찬우는 스택을 배운 뒤 자료구조 과목과 사랑에 빠지고 말았다.
자료구조 과목만을 바라보기로 다짐한 찬우는 나머지 과목의 교과서 𝑁권을 방 구석에 𝑀개의 더미로 아무렇게나 쌓아 두었다. 하지만 중간고사가 다가오자 더 이상 자료구조만 공부할 수는 없었고, 결국 찬우는 팽개쳤던 나머지 과목의 교과서를 정리하고 번호순으로 나열하려 한다.
𝑁권의 교과서는 각각 1부터 𝑁까지의 번호가 매겨져 있다. 찬우는 각 더미의 맨 위에 있는 교과서만 꺼낼 수 있으며, 반드시 교과서를 꺼낸 순서대로 나열해야 하기 때문에 번호순으로 나열하기 위해서는 1번, 2번, … 𝑁−1번, 𝑁번 교과서 순으로 꺼내야 한다. 교과서를 올바르게 나열할 수 없다면 중간고사 공부를 때려치겠다는 찬우를 위해 번호순으로 나열할 수 있는지 여부를 알려주는 프로그램을 작성해 주자.
첫째 줄에 교과서의 수 𝑁, 교과서 더미의 수 𝑀이 주어진다.
둘째 줄부터 2×𝑀줄에 걸쳐 각 더미의 정보가 주어진다.
𝑖번째 더미를 나타내는 첫 번째 줄에는 더미에 쌓인 교과서의 수 𝑘𝑖 가 주어지며, 두 번째 줄에는 𝑘𝑖 개의 정수가 공백으로 구분되어 주어진다.
각 정수는 교과서의 번호를 나타내며, 아래에 있는 교과서의 번호부터 주어진다.
교과서의 번호는 1부터 𝑁까지의 정수가 한 번씩만 등장한다.
올바른 순서대로 교과서를 꺼낼 수 있다면 Yes를, 불가능하다면 No를 출력한다.
코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
for _ in range(m):
k = int(input())
arr = list(map(int, input().split()))
for i in range(1, k):
if arr[i-1] < arr[i]:
print('No')
exit()
print('Yes')
'알고리즘 > 백준' 카테고리의 다른 글
[Silver IV] 떡국 - 20937 (python) (0) | 2024.07.02 |
---|---|
[Silver IV] 네모네모 시력검사 - 18242 (python) (0) | 2024.07.02 |
[Silver III] 수강신청 - 13414 (python) (0) | 2024.07.02 |
[Silver I] 나무 탈출 - 15900 (python) (0) | 2024.07.02 |
[Silver III] 근손실 - 18429 (python) (0) | 2024.07.02 |