문제
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int p = Integer.parseInt(br.readLine());
int[][] arr = new int[p][2];
for (int i = 0; i < p; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
StringBuilder sb = new StringBuilder();
Arrays.stream(arr)
.sorted(Comparator.comparingInt((int[] o) -> o[0])
.thenComparingInt((int[] o) ->o[1])
)
.forEach((int[] o) -> sb.append(o[0]).append(" ").append(o[1]).append("\n"));
System.out.println(sb);
}
}
알게 된 점
스트림객체로 변화 시킨 이후의 연산 메소드들에는 람다식의 매개변수로 배열의 요소들이 하나하나 들어가게 되는 것을 알게 되면서 Stream을 사용해서 Comparator 연산자를 사용하는 방법을 익힐 수 있엇다.
반응형