모든 챌린지
보통 0명 해결 정답률 0%

공장 생산 시간

병렬로 동작하는 기계들이 목표 개수의 제품을 가장 빨리 완성할 수 있는 시간을 구하세요.

모든 기계는 0초에 동시에 시작하며, 서로 독립적으로 동작합니다. 어떤 기계의 소요 시간이 t초라면, t초마다 하나의 제품을 완성합니다(즉, t초, 2t초, 3t초 ...에 각각 제품이 완성됨). 여러 기계의 누적 생산량이 목표치에 도달하는 가장 이른 정수 초를 구하세요.

factory_machines(times, target)을 구현하세요.

입력

times: 각 기계가 제품 하나를 생산하는 데 걸리는 초 단위 시간들의 리스트입니다.

target: 완성해야 하는 제품의 총 개수입니다.

출력

최소로 경과된 초(정수)를 반환하세요.

제약 조건

1 ≤ 기계 수 ≤ 200,000. 각 시간과 목표치는 1 이상 1,000,000,000 이하의 정수입니다. 정답은 64비트 signed 정수 범위 내에 있습니다.

예시

예시 1
입력:
times = [2, 3]
target = 5

예상 출력:
expected = 6
입력:
std::vector<long long> times = {2, 3};
long long target = 5;

예상 출력:
long long expected = 6;
입력:
long[] times = new long[] {2, 3};
long target = 5;

예상 출력:
long expected = 6;

설명

6초일 때 기계들이 3 + 2 = 5개의 제품을 만들었습니다. 5초일 때는 2 + 1 = 3개만 완성되었습니다.

예시 2
입력:
times = [4]
target = 3

예상 출력:
expected = 12
입력:
std::vector<long long> times = {4};
long long target = 3;

예상 출력:
long long expected = 12;
입력:
long[] times = new long[] {4};
long target = 3;

예상 출력:
long expected = 12;

설명

한 기계가 세 번째 제품을 3 × 4 = 12초에 완성합니다.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.