
const { count } = require("console");
const fs = require("fs");
const { nextTick } = require("process");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim();
// const fs = require('fs');
// let input = fs.readFileSync("/dev/stdin").toString().trim();
input=input.split('\n')
const N = parseInt(input[0]);
const arr = [];
for(let i=1;i<=N;i++) {
arr.push(input[i].split(" ").map(Number));
}
let flowerCount = 0;
const solution = () => {
let month = 3;
let day = 1;
let index = -1;
let endMonth = 0;
let endDay = 0;
const visit = Array(N).fill(false);
while(true) {
for(let i=0;i<N;i++) {
if(visit[i]) {
continue;
}
if(arr[i][0] < month || (arr[i][0] === month && arr[i][1] <= day)) {
if(arr[i][2] > endMonth || (arr[i][2] === endMonth && arr[i][3] > endDay)) {
index = i;
endMonth = arr[i][2];
endDay = arr[i][3];
}
}
}
if(index == -1) {
console.log(0);
break;
}
m = arr[index][2];
if(m === 12) {
console.log(flowerCount + 1);
break;
}
d = arr[index][3];
visit[index] = true;
flowerCount++;
endMonth = 0;
endDay = 0;
index = -1;
}
}
solution();
로직은 비슷하게 생각해냈는데 break 조건(12/1)과 0을 출력하는 경우의 조건을 제대로 설정하지 못해 틀렸었다.