inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)

[문제 풀이] 생산 공정 최적화 (이분탐색) ⭐️⭐️

생산 공정 최적화 (이분탐색) worst Case 수정

52

이민재

작성한 질문수 7

0

 

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]))

 

최악의 경우가 가장 느린기계가 제품을 모두 생성하는 시간이 아닌 가장 빠른 기계만 사용해서 제품을 모두 만드는 경우가 최악의 케이스 같습니다!

javascript 코딩-테스트 알고리즘 data-structure

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이민재님.

질문해주신 ‘생산 공정 최적화’ 문제 관련 내용에 대해 답변드리겠습니다. 주신 코드에서 최악의 경우를 처리하는 방식에 대해 혼란이 좀 있을 수 있습니다.

이분탐색을 고려한 최악의 경우 설정:

  1. 기존 코드:
    
    let right = Math.min(...speeds) * n;
    

    이 부분은 가장 빠른 기계가 n개의 제품을 만드는 시간을 기준으로 설정하였습니다.

문제를 명확히 하기 위해서는:

  • 생산 공정의 최악의 경우, 즉 가장 오랜 시간이 걸릴 수 있는 경우를 고려하여, 주어진 모든 기계가 제품을 만드는 가장 긴 시간을 기준으로 삼는 것이 아니라, 가장 빠르게 제품을 만들 수 있는 경우를 찾아서 최단 시간을 탐색하는 방향으로 문제를 풀어야 합니다. 이는 구현 목적에 따라 다르기 때문에, 현재 코드에서의 “최악의 경우”는 좀 더 구체적인 문제 조건 파악을 통해 조정될 수 있으며, 이 경우에는 가장 빠른 기계가 모든 제품을 만들 수 있는 시간으로 설정한 상태로 구현된 것으로 보입니다.

기타 유사한 질문이나 이전 답변은 다음 링크에서 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

7

1

3강 질문

0

12

1

갑자기 채점 사이트가 바뀌었어요

0

17

1

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

23

1

2강 nodejs 3단계 설명 질문

0

31

1

문제 리스트 페이지

0

20

1

part8 Notion 링크

0

17

1

채점 사이트 관련 질문드립니다

0

17

1

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

50

2

imagesLoaded에 관한 질문

0

19

2

useEffect와 lifecycle문의

0

26

2

2주차 개념#12 트리 순회

0

24

2

프론트엔드 학습 수준 문의

0

37

2

백준 사이트 서비스 종료

0

106

3

버블정렬

0

46

1

학습 방향성에 대한 문의

1

75

2

큐 구현 관련

0

52

2

난이도 질문

0

90

2

강의 구현 코드

0

90

2

테스트 케이스 관련

0

71

1

연결리스트 뒤집기

0

71

2

공부방법 문의

0

75

1

알고리즘 개념에 대한 추천 자료문의

0

68

1

강의에 나온 selection 코드에 오류가 있습니다.

0

120

2