Skip to content

Commit 32fc2d3

Browse files
authored
[20250213] BOJ / 골드5 / 휴먼 파이프라인 / 이강현
1 parent 15d40fc commit 32fc2d3

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
```java
2+
import java.util.*;
3+
import java.io.*;
4+
public class Main{
5+
public static void main(String[] args) throws Exception{
6+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
StringTokenizer st = new StringTokenizer(br.readLine());
9+
int N = Integer.parseInt(st.nextToken());
10+
long K = Long.parseLong(st.nextToken());
11+
int[] workSpeed = new int[N];
12+
13+
st = new StringTokenizer(br.readLine());
14+
for(int i=0;i<N;i++){
15+
workSpeed[i] = Integer.parseInt(st.nextToken());
16+
}
17+
Arrays.sort(workSpeed);
18+
19+
int min = workSpeed[0]; //어느 한쪽 팀은 무조건 전체 속도의 최솟값을 가지게 될거임. 이를 a로 설정
20+
int aTeamCount = 0;
21+
int aTeamSpeed = min;
22+
int bTeamCount = 0;
23+
long bTeamSpeed = 0;
24+
long totalSpeed = 0;
25+
long maxSpeed = 0;
26+
for(int i=1;i<N;i++){
27+
bTeamSpeed = workSpeed[i]; // 작업 속도배열을 순회하며 하나씩 최솟값이 존재하지 않는 다른 팀의 하한으로 결정
28+
aTeamCount = i;
29+
bTeamCount = N-i;
30+
/* 작업 속도는 정렬되어 있고 총 작업 속도의 최댓값을 찾는 것이 목적. 이때 작업속도의 최솟값이 존재하지
31+
* 않는 bTeam의 작업자 입장에서는 ateam의 하한에 곱해질 바에 bteam의 하한에 곱해지는게 무조건 이득임.
32+
*/
33+
totalSpeed = (long)aTeamCount*aTeamSpeed + bTeamCount*bTeamSpeed;
34+
maxSpeed = Math.max(maxSpeed,totalSpeed);
35+
}
36+
bw.write((K+maxSpeed-1)/maxSpeed+"");
37+
38+
bw.flush();
39+
}
40+
}
41+
```

0 commit comments

Comments
 (0)