๐ŸŽฒ ๋ฐฑ์ค€ 12015๋ฒˆ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 2

Jeongeunยท2024๋…„ 3์›” 10์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
180/186

๐Ÿ“ฃ ๋ฌธ์ œ

๐ŸŽจ ์ฐธ๊ณ  ์ฝ”๋“œ

์ฝ”๋“œ

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);

0๊ฐœ์˜ ๋Œ“๊ธ€