일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 재테크
- algorithmStudy
- 다독
- 주식
- 성분
- C++
- 책알남
- 백준알고리즘
- 책을알려주는남자
- 독서
- 화장품
- 알고리즘공부
- 채권
- 경제
- 독후감
- algorithmTest
- Java
- 자바
- C
- 지혜를가진흑곰
- 서평
- 프로그래머스 알고리즘 공부
- algorithmtraining
- 알고리즘트레이닝
- 알고리즘 공부
- 투자
- 자바스크립트
- 프로그래밍언어
- 돈
- JavaScript
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
[Algorithm] 입국심사 ( Programmers - JavaScript) 본문
[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training
[Algorithm] 입국심사 ( Programmers - JavaScript)
Snow-ball 2023. 10. 9. 14:12반응형
문제 설명
n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다.
처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다.
모든 사람이 심사를 받는데 거리는 시간을 최소로 하고 싶습니다.
입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요.
제한사항
입출력 예
입출력 예 설명
가장 첫 두 사람은 바로 심사를 받으러 갑니다.
7분이 되었을 때, 첫 번째 심사대가 비고 3번째 사람이 심사를 받습니다.
10분이 되었을 때, 두 번째 심사대가 비고 4번째 사람이 심사를 받습니다.
14분이 되었을 때, 첫 번째 심사대가 비고 5번째 사람이 심사를 받습니다.
20분이 되었을 떄, 두 번째 심사대가 비지만 6번째 사람이 그곳에서 심사를 받지 않고 1분은 더 기다린 후에 첫 번째 심사대에서 심사를 받으면 28분에 모든 사람의 심사가 끝납니다.
문제풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
function solution(n, times) {
let minTime = 0;
let maxTime = n * times[times.length - 1];
let answer = maxTime;
while (minTime <= maxTime) {
let middle = Math.floor((maxTime + minTime) / 2);
let count = 0;
times.forEach((examiner) => {
count += Math.floor(middle / examiner);
if (count >= n) {
answer = Math.min(middle, answer);
}
});
if (count >= n) {
maxTime = middle - 1;
} else {
minTime = middle + 1;
}
}
return answer;
}
|
cs |
https://school.programmers.co.kr/learn/courses/30/lessons/43238
반응형
'[Snow-ball]프로그래밍(컴퓨터) > Algorithm Training' 카테고리의 다른 글
[Algorithm] 광물캐기 ( Programmers - JavaScript ) (0) | 2023.10.11 |
---|---|
[Algorithm] 과제 진행하기 ( Programmers - JavaScript ) (1) | 2023.10.10 |
[Algorithm] 두 원 사이의 정수 쌍 ( Programmers - JavaScript) (0) | 2023.10.08 |
[Algorithm] 전화번호 목록 (Programmers - JavaScript) (1) | 2023.10.07 |
[Algorithm] 완주하지 못한 선수 (Programmers - JavaScript) (1) | 2023.10.06 |
Comments