말랑한 하루
[Programmers] 징검다리 (Lv 3, JavaScript) 본문
반응형
[ 학습 내용 ]
이분탐색은 이론은 쉽게 이해할 수 있다. 그러나, 무엇을 기준으로 어떤 결과를 얻어야하며, 그 결과를 얻을 때 검증이 필요한지 판단하는 것이 중요하고 결과에 다다르기 위해 어떻게 변수를 조정할 지 생각해야 하는것이 까다롭다.
[ 소스 코드 ]
function solution(stones, k) {
var left = 1, right = 200000000;
const checkBridge = (mid) => {
var cnt = 0;
for(let i = 0; i < stones.length; i++) {
cnt = stones[i] < mid ? cnt + 1 : 0;
if (cnt >= k) return false;
}
return true;
}
while(left <= right) {
let mid = (left + right) / 2 >> 0;
checkBridge(mid) ? left = mid + 1 : right = mid - 1;
}
return right;
}
[ 코드 분석 ]
이 문제의 경우, 징검다리를 기준으로 최대 몇명의 친구들이 건널 수 있는지 요구하는 문제이며
해당 결과를 얻기 위해서는, 징검다리가 최소 k개 떨어져 있어야 친구 1명이 건널 수 있다.
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 콜라 문제 (Lv 1, Java) (0) | 2022.10.22 |
---|---|
[Programmers] 콜라 문제 (Lv 1, Python) (0) | 2022.10.22 |
[Programmers] 뉴스 클러스터링 (Lv 2, JavaScript) (0) | 2022.09.20 |
[Programmers] 튜플 (Lv 2, JavaScript) (0) | 2022.09.19 |
[Programmers] 캐시 (Lv 2, JavaScript) (0) | 2022.09.19 |
Comments