Skip to content

Commit 6bff12a

Browse files
authored
[20250904] PGM / LV3 / [1차] 셔틀버스 / 김수연
[20250904] PGM / LV3 / [1차] 셔틀버스 / 김수연
2 parents c3295a7 + 157286d commit 6bff12a

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
```java
2+
import java.util.*;
3+
class Solution {
4+
public String solution(int n, int t, int m, String[] timetable) {
5+
int answer = 0;
6+
PriorityQueue<Integer> pq = new PriorityQueue<>();
7+
// 크루 도착 시간
8+
for (String time : timetable) pq.add(convertToTime(time));
9+
10+
int departTime = 9*60;
11+
List<List<Integer>> bus = new ArrayList<>();
12+
// 각 버스에 타는 크루 저장
13+
for (int i = 0; i < n; i++) bus.add(new ArrayList<>());
14+
15+
for (int i = 0; i < n; i++) {
16+
while (!pq.isEmpty()) {
17+
int crew = pq.poll();
18+
if (bus.get(i).size() < m && crew <= departTime) {
19+
bus.get(i).add(crew);
20+
answer = crew - 1;
21+
} else {
22+
pq.add(crew);
23+
break;
24+
}
25+
}
26+
departTime += t;
27+
}
28+
29+
if (bus.get(n-1).size() < m) answer = departTime - t;
30+
return convertToString(answer);
31+
}
32+
33+
static int convertToTime(String s) {
34+
String[] a = s.split(":");
35+
return Integer.parseInt(a[0]) * 60 + Integer.parseInt(a[1]);
36+
}
37+
38+
static String convertToString(int time) {
39+
return String.format("%02d:%02d", time / 60, time % 60);
40+
}
41+
}
42+
```

0 commit comments

Comments
 (0)