※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 23253번 문제인 자료구조는 정말 최고야이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/23253
23253번: 자료구조는 정말 최고야
위 그림처럼 책이 쌓여 있으므로, 첫 번째 더미 - 두 번째 더미 - 첫 번째 더미 - 두 번째 더미 순으로 꺼내면 책 번호순으로 나열할 수 있다.
www.acmicpc.net
어떤 한 더미의 책 안에서 번호가 큰 책 하나가 번호가 작은 책 보다 위에 있는 경우가 존재한다면 어떻게 책을 꺼내더라도 번호가 작은 책을 번호가 큰 책보다 먼저 꺼낼 수 없으므로 답이 될 수 없다.
반대로 모든 책 더미들의 책 번호들의 책번호가 위로 갈수록 작다면 모든 중간단계에서 현재 남아있는 책들 중 가장 작은 번호인 책은 맨 위의 책들 중 하나일 수밖에 없으므로 항상 올바른 순서대로 꺼낼 수 있다.
위의 두 가지 경우로 상황을 구분해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
bool chk = 1;
int N, M; cin >> N >> M;
while (M--) {
int K; cin >> K;
int old = N + 1;
while (K--) {
int x; cin >> x;
if (x > old) chk = 0;
old = x;
}
}
if (chk) cout << "Yes";
else cout << "No";
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 23254 // C++] 나는 기말고사형 인간이야 (0) | 2022.07.03 |
---|---|
[BOJ 9002 // C++] Match Maker (0) | 2022.07.03 |
[BOJ 14712 // C++] 넴모넴모 (Easy) (0) | 2022.07.03 |
[BOJ 14710 // C++] 고장난 시계 (0) | 2022.07.03 |
[BOJ 23251 // C++] 스물셋 (0) | 2022.07.03 |