시간&메모리 제한
문제
입력&출력
문제풀이
package com.back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Back_11650 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
ArrayList<point> arr = new ArrayList<>();
StringTokenizer st;
int x, y;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
x= Integer.parseInt(st.nextToken());
y= Integer.parseInt(st.nextToken());
arr.add(new point(x,y));
}
Collections.sort(arr);
for (int i = 0; i < arr.size(); i++) {
sb.append(arr.get(i).x+" "+arr.get(i).y+"\n");
}
System.out.println(sb);
}
static class point implements Comparable<point>{
int x;
int y;
public point(int x, int y) {
super();
this.x = x;
this.y = y;
}
@Override
public int compareTo(point o) {
if(this.x==o.x) {
return this.y-o.y;
}
return this.x-o.x;
}
}
}
- 이 문제는 좌표를 정렬하는 문제입니다.
- 좌표를 정렬할 때, X 좌표가 같은 경우 Y 좌표 역시 같이 정렬을 해줘야 합니다.
- 정렬을 위해 클래스를 만들고 Comparable를 이용해서 문제를 해결했습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2108 통계학(자바) / 정렬 (0) | 2021.08.01 |
---|---|
백준_1026 보물(자바) / 정렬 (0) | 2021.07.31 |
백준_2751 수 정렬하기2(자바) / 정렬 (0) | 2021.07.29 |
백준_5052 전화번호 목록(자바) / 문자열 (0) | 2021.07.28 |
백준_5525 IOIOI(자바) / 문자열 (0) | 2021.07.26 |