programmers.co.kr/learn/courses/30/lessons/64062
코딩테스트 연습 - 징검다리 건너기
[2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3
programmers.co.kr
class Solution {
public int solution(int[] stones, int k) {
int answer = 0, left = 0, right = Integer.MAX_VALUE;
while(left <= right) {
int mid = (left+right)/2;
if(check(mid,k,stones)) {//mid 값으로 징검다리를 건널 수 있다면, 그보다 작은 값 다건넘
left = mid+1;//mid+1 부터 다시 탐색
answer = mid;
}
else right = mid-1;//mid 값으로 징검다리 건널 수 없다면 그보다 큰 값 x, mid-1
}
return answer;
}
public boolean check(int mid, int k, int[] stones) {
int count = 0;
for(int stone : stones) {
if(stone < mid) {//stones 요소가 mid보다 작으면
count++;
if(count>=k) return false;//건널수 없음
}
else count = 0;
}
return true;
}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 1795번 암호 만들기 java (0) | 2021.05.04 |
---|---|
[백준] 18222번 투에-모스 문자열 java (0) | 2021.04.16 |
[프로그래머스] 스타 수열 java (0) | 2021.04.05 |
[프로그래머스] 짝지어 제거하기 java (0) | 2021.04.01 |
[백준] 1244 스위치 켜고 끄기 java (0) | 2021.03.30 |