스택
자료구조는 정말 최고야
올바른 순서대로 교과서를 꺼낼 수 있으면 YES
꺼낼 수 없으면 NO
function solution(books) {
const input = books.split("\n");
const [_N, M] = input[0].split(" ");
for (let i = 1; i <= M; i++) {
let bookNumbers = input[i * 2].split(" ").map(Number);
for (let j = 0; j < bookNumbers.length - 1; j++) {
if (bookNumbers.pop() > bookNumbers.pop()) {
return "NO";
}
}
}
return "YES";
}
const books = `4 2
2
3 1
2
4 2`;
console.log(solution(books));
let bookNumbers = input[i * 2].split(" ").map(Number);
책의 더미는 2칸씩 띄어져 있으므로 *2를 통해 더미를 bookNumbers 배열에 대입하였다.
for (let j = 0; j < bookNumbers.length - 1; j++) {
if (bookNumbers.pop() > bookNumbers.pop()) {
return "NO";
}
}
책더미1 를 꺼내는데 먼저 꺼낸 게 더 크면 번호순으로 나열할 수 없으므로 NO를 리턴한다.
return "YES";
그게 아니라면 YES를 리턴한다.
들어올 수 밖에 없는 썸네일 ㄷㄷ