https://www.acmicpc.net/problem/11651
- 예제 입력1
5
0 4
1 2
1 -1
2 2
3 3
- 예제 출력1
1 -1
1 2
2 2
3 3
0 4
- 문제 접근
- 입력
- 좌표의 개수 N (1 ≤ N ≤ 100,000)
- N개의 줄만큼 x좌표와 y좌표
- 출력
- 좌표 정렬 결과 출력
- 입력
- 문제 해결
- 이전 문제와 동일한 문제이나, y좌표를 오름차순 정렬
- y좌표가 동일하다면 x좌표를 오름차순 정렬
- 이번에는 클래스가 아닌 2차원 배열로 풀이
- 기존 풀이 [메모리 : 81944 KB / 시간 : 812 ms]
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N][2];
for(int i = 0; i < N; i++){
int[] input = getCoordinate(br.readLine());
arr[i][0] = input[0];
arr[i][1] = input[1];
}
Arrays.sort(arr, (o1, o2) -> {
if(o1[1] == o2[1])
return o1[0] - o2[0];
return o1[1] - o2[1];
});
for(int[] coordinate : arr)
sb.append(coordinate[0]).append(" ").append(coordinate[1]).append("\n");
System.out.println(sb);
}
private static int[] getCoordinate(String str) {
return Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();
}
'Coding Test > Step13. 정렬' 카테고리의 다른 글
[Java] 10단계. 나이순 정렬 [10814번] (0) | 2024.09.10 |
---|---|
[Java] 9단계. 단어 정렬 [1181번] (1) | 2024.09.10 |
[Java] 7단계. 좌표 정렬하기 [11650번] (0) | 2024.09.10 |
[Java] 6단계. 소트인사이드 [1427번] (0) | 2024.09.10 |
[Java] 5단계. 수 정렬하기3 [10989번] (0) | 2024.09.10 |