[programmers] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지
in Algorithm on Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/340212
회고) 덜렁이..변수좀 잘 보자..
import java.util.*;
class Solution {
public int solution(int[] diffs, int[] times, long limit) {
int left = diffs[0], level = 0, answer = 0;
int right = Arrays.stream(diffs).max().getAsInt();
while(left <= right){
level = (left + right)/2;
if(search(level, diffs, times) > limit){
left = level+1;
}else{
right = level-1;
answer = level;
}
}
return answer;
}
private long search(int level, int[] diffs, int[] times){
long result = 0;
for(int i = 0 ; i < diffs.length ; i++){
int temp = diffs[i] - level;
if(temp > 0){
result += (long) (times[i-1] + times[i]) * temp + times[i];
}else{
result += times[i];
}
}
return result;
}
}