class Solution {
public int solution(int n, int[] cores) {
int answer = 0;
int left = 0, right = 1000000000, mid;
int time = 0;
while (left <= right) {
mid = (left + right) / 2;
int tmp = 0;
for (int core : cores) {
tmp += mid / core;
}
if (tmp < n) {
left = mid + 1;
}
else {
time = mid;
right = mid - 1;
}
}
answer = 0;
for (int i = 1; i < cores.length; i++) {
if (time % cores[i] == 0) {
answer = i;
}
}
answer++;
return answer;
}
}
작업이 끝나는 시간은 구했는데 어느 코어가 마지막 작업을 했는지 알 수가 없었다.
다음에 다시 풀어봐야겠다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges