문제링크
https://www.acmicpc.net/problem/2141
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N;
static long result=0;
static Node node[];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N= Integer.parseInt(st.nextToken());
node = new Node[N];
for(int i=0;i<N;i++) {
st = new StringTokenizer(br.readLine());
long X = Long.parseLong(st.nextToken());
long A = Long.parseLong(st.nextToken());
node[i] = new Node(X,A);
result +=A;
}
Arrays.sort(node); //입력값이 순서대로 들어온다는 보장 X
long sum = 0;
for(Node n : node) {//하나씩 인구 수 계산하여 중간 값과 가장 근접한 마을 찾아서 출력하기
sum += n.A;
if(sum >=(result+1)/2) {
System.out.println(String.valueOf(n.X));
break;
}
}
}
static class Node implements Comparable<Node>{
long X;
long A;
public Node(long x, long a) {
super();
X = x;
A = a;
}
@Override
public int compareTo(Node o) {
if(this.X == o.X) {
//서로 거리가 같으면
return (int) (this.A-o.A);
}
return (int) (this.X-o.X);
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[JAVA]백준_2212_센서 (0) | 2021.04.07 |
---|---|
[JAVA]백준_13164_행복유치원 (0) | 2021.04.07 |
[JAVA]백준_1755_숫자놀이 (0) | 2021.03.29 |
[JAVA]백준_4195_친구네트워크 (0) | 2021.03.26 |
[JAVA]백준_9205_맥주 마시면서 걸어가기 (0) | 2021.03.26 |