본문 바로가기

알고리즘 문제/프로그래머스2

[프로그래머스] 입국심사 (Java) 💡문제 분석 요약입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 주어질 때, 모든 사람이 심사는 받는데 걸리는 시간의 최솟값을 구하는 문제이다.$1 ≤ n ≤ 1,000,000,000$각 심사관이 한 명을 심사하는데 걸리는 시간(분): $1 ≤ time ≤ 1,000,000,000$심사관: $1≤ t ≤ 100,000$ 💡알고리즘 설계이진탐색을 사용.탐색 범위left(최소시간): 1right(최대시간): `n * max(times)` :가장 오래 걸리는 심사관이 모든 사람을 심사하는 경우탐색 수행mid(중간시간): `left + (right - left) / 2`이 시간동안 모든 심사관들이 심사할 수 있는 인원을 계산한다.범위 조정계산된 인원이 .. 2024. 7. 29.
[프로그래머스] 다리를 지나는 트럭 💡문제 분석 요약트럭들이 다리를 순서대로 건너는 상황이다. 다리에는 동시에 최대 bridge_length 대의 트럭이 올라갈 수 있고, 다리가 견딜 수 있는 최대 무게는 weight 이다. 모든 트럭이 다리를 건너는데 걸리는 최소 시간을 구하는 문제이다. 💡알고리즘 설계하나의 큐를 사용한다.pass_q: 다리 위에 있는 트럭들의 무게 저장시간(answer)를 1초씩 증가시키며, 매초마다 작업을 수행한다.다리를 완전히 건넌 트럭 처리pass_q의 크기가 bridge_length 이상이면, 가장 앞의 트럭을 제거하고 총 무게에서 뺀다.트럭이 다리에 올라올 수 있는지 확인대기 중인 트럭이 있고, (현재 다리 위 무게 + 대기 중인 첫 번째 트럭의 무게)가 weight 이하일 경우새 트럭을 pass_q에 추.. 2024. 7. 11.
반응형