생산 공정 최적화 (이분탐색) worst Case 수정
108
작성한 질문수 7
function solution(n, speeds) {
let left = 1;
let right = Math.min(...speeds) * n; //최악의 경우 : 가장 빠른 기계가 n개의 제품을 만드는 시간
let answer = right;
while(left <= right){
const mid = Math.floor((left+right) / 2)
let total = 0;
for (let time of speeds) {
total += Math.floor(mid/time) // 중간 시간에 생성할 수 있는 제품 수
}
if(total >= n){
answer = mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
return answer
}
console.log(solution(8, [5,9]))
console.log(solution(6, [7,10]))
최악의 경우가 가장 느린기계가 제품을 모두 생성하는 시간이 아닌 가장 빠른 기계만 사용해서 제품을 모두 만드는 경우가 최악의 케이스 같습니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이민재님.
질문해주신 ‘생산 공정 최적화’ 문제 관련 내용에 대해 답변드리겠습니다. 주신 코드에서 최악의 경우를 처리하는 방식에 대해 혼란이 좀 있을 수 있습니다.
이분탐색을 고려한 최악의 경우 설정:
- 기존 코드:
let right = Math.min(...speeds) * n;
이 부분은 가장 빠른 기계가 n개의 제품을 만드는 시간을 기준으로 설정하였습니다.
문제를 명확히 하기 위해서는:
- 생산 공정의 최악의 경우, 즉 가장 오랜 시간이 걸릴 수 있는 경우를 고려하여, 주어진 모든 기계가 제품을 만드는 가장 긴 시간을 기준으로 삼는 것이 아니라, 가장 빠르게 제품을 만들 수 있는 경우를 찾아서 최단 시간을 탐색하는 방향으로 문제를 풀어야 합니다. 이는 구현 목적에 따라 다르기 때문에, 현재 코드에서의 “최악의 경우”는 좀 더 구체적인 문제 조건 파악을 통해 조정될 수 있으며, 이 경우에는 가장 빠른 기계가 모든 제품을 만들 수 있는 시간으로 설정한 상태로 구현된 것으로 보입니다.
기타 유사한 질문이나 이전 답변은 다음 링크에서 확인하실 수 있습니다:
- 이분탐색 알고리즘에 관한 자세한 설명과 적용 사례: 이분탐색의 기본 원리와 다양한 적용 사례를 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
코딩 살구클럽 가입 문의
0
12
1
10월 15일 삭제예정 강의 문의
0
32
1
강의제목에 10/15일 삭제라고 나와있는데,
0
46
1
Queue
0
43
1
코딩살구클럽 가입문의
0
55
2
스크립트 영상 미일치
0
73
3
감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.
0
54
2
강의 설명 중에 헷갈리는 것이 있네요
0
50
1
수업자료 관련 문의
0
65
3
3-K private case 질문
0
55
2
1강 동영상 재생 오류
1
66
2
안녕하세요. 코딩살구클럽 문의드립니다!
0
70
2
Composition단계에서 `Layer`는 누가 만드는지
0
43
1
선택정렬 이해하기 & 구현하기
0
59
1
버블정렬
0
89
1
학습 방향성에 대한 문의
1
131
2
큐 구현 관련
0
110
2
난이도 질문
0
175
2
강의 구현 코드
0
144
2
테스트 케이스 관련
0
116
1
연결리스트 뒤집기
0
122
2
공부방법 문의
0
130
1
알고리즘 개념에 대한 추천 자료문의
0
118
1
강의에 나온 selection 코드에 오류가 있습니다.
0
181
2





