๐จ ์ฐธ๊ณ ์ฝ๋
์ฝ๋
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input.shift();
const arr = input[0].split(" ").map(Number);
const result = [arr[0]];
const binarySearch = (num) => {
let left = 0;
let right = result.length - 1;
while (left <= right) {
let mid = Math.floor((left + right) / 2);
if (result[mid] < num) left = mid + 1;
else if (result[mid] > num) right = mid - 1;
else return (result[mid] = num);
}
result[left] = num;
};
for (let i = 1; i < N; i++) {
if (result[result.length - 1] < arr[i]) result.push(arr[i]);
else binarySearch(arr[i]);
}
console.log(result.length);