forDevLife
[백준] 1417 - 국회의원 선거 본문
처음엔 while 내에서 계속 정렬을 통해 가장 큰 수와, 다솜이의 수와 비교했으나 priorityQueue를 이용해도 괜찮을 것 같았다.
후보자가 다솜이(1명)만 있을 경우, 0을 리턴하는 코드도 작성 해야 outOfBound(배열 썼을 경우) / NullPointer(큐 썼을 경우) 발생 안함
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int dasom = Integer.parseInt(br.readLine());
PriorityQueue pQ = new PriorityQueue(Collections.reverseOrder());
if(N == 1) {
System.out.println(0);
return;
}
for (int i = 0; i < N-1; i++) {
pQ.offer(Integer.parseInt(br.readLine()));
}
int dasom_1 = dasom;
while (true) {
int tmp = (Integer)pQ.poll();
if(dasom > tmp) {
break;
} else {
dasom ++;
pQ.offer(tmp-1);
}
}
System.out.println(dasom - dasom_1);
}
}
+ 비록 자바로 푼 사람이 몇 명 안되지만 1등이다!
'알고리즘' 카테고리의 다른 글
[백준] 1181 - 단어 정렬 (0) | 2021.06.14 |
---|---|
[백준] 1018 - 체스판 다시 칠하기 (0) | 2021.06.14 |
[백준] 1343 - 폴리오미노 (0) | 2021.06.14 |
[백준] 17224 - APC는 왜 서브태스크 대회가 되었을까? (0) | 2021.06.13 |
[백준] 2839 - 설탕 배달 (0) | 2021.06.11 |
Comments