티스토리 뷰

https://www.acmicpc.net/problem/1654

 

1654번: 랜선 자르기

첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그

www.acmicpc.net

 

이분탐색에서 while문 조건식이 min<max 로 해야되는지 min<=max로 해야되는지  잘 모르겠다. 😔

 

const fs = require('fs');
const [A,...B] = fs.readFileSync("./dev/stdin").toString().trim().split("\n");

const [_,N] = A.split(' ');
const cable =B.map(v=>+v);

let min = 0;
let max = Math.max(...cable);
let answer = 0;
while(min<=max){
  let mid = Math.floor((min+max)/2);
  let cnt =0; 
  cable.forEach(c=>{
    cnt+=Math.floor(c/mid);
  })
  if(cnt>=N){
    if(mid>answer) answer=mid;
    min=mid+1;
  }else{
    max=mid-1
  }
}
console.log(answer)
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함