HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤎
프론트엔드 데브코스 5기 교육생
/
🐥
김은수팀
/
🏆
7주차 : 기업 코테 딱대
/
2. 랜선자르기

2. 랜선자르기

URL
https://www.acmicpc.net/problem/1654
고른사람
승민
난이도
실버2

다윤 풀이

const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt"; let [KN, ...inputs] = require("fs") .readFileSync(filePath) .toString() .trim() .split("\n"); const [K, N] = KN.split(" ").map((a) => +a); const lines = inputs.map((a) => +a); let end = Math.max(...lines); let start = 1; while (start <= end) { let mid = parseInt((start + end) / 2); const sum = inputs.reduce((acc, cur) => acc + parseInt(Number(cur) / mid), 0); if (sum >= N) start = mid + 1; else if (sum < N) end = mid - 1; } console.log(end);

민수 풀이

let [input,...arr] = require('fs').readFileSync(__dirname + "/../input.txt").toString().trim().split("\n"); // let [input,...arr] = require('fs').readFileSync("/dev/stdin").toString().trim().split("\n"); arr = arr.map(e => +(e.trim())).sort((a,b) => a - b); const [K, N] = input.split(' ').map(Number); let l = 0; let r = arr[arr.length - 1]; let m = Math.floor((l+r) / 2); let result = 0; while(l <= r){ // 랜선 갯수 구하기 let num = 0; arr.forEach(e => num += Math.floor(e/m)); if(num >= N){ l = m + 1; // 최대 m 값 if(m > result) result = m }else{ r = m - 1; } m = Math.floor((l+r)/ 2); } console.log(result);

재현 풀이

송희 풀이

승민 풀이