728x90
문제
https://www.acmicpc.net/problem/11651
풀이 코드
- x,y 좌표를 표현할 Pos 클래스를 만들고, Comparable을 구현하여 정렬 기준을 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 만든다.
- 좌표 값들을 입력 받아 Pos타입 배열에 저장하고 배열을 정렬한 후 출력한다.
- StringBuilder를 사용하여 한번에 모아 출력함으로써 실행 시간 단축
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static class Pos implements Comparable<Pos>{
int x;
int y;
public Pos(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Pos o) {
if (this.y == o.y) {
return this.x - o.x;
} else {
return this.y - o.y;
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
Pos[] arr = new Pos[n];
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
arr[i] = new Pos(x, y);
}
Arrays.sort(arr);
for (Pos pos : arr) {
sb.append(pos.x).append(" ").append(pos.y).append("\n");
}
System.out.println(sb);
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[알고리즘/백준] 2869 달팽이는 올라가고 싶다 - 자바(JAVA) (0) | 2021.10.07 |
---|---|
[알고리즘/백준] 11866 요세푸스 문제 0(자바, 큐) (0) | 2021.10.06 |
[알고리즘/백준] 10845 큐(자바, 링 버퍼) (0) | 2021.10.04 |
[알고리즘/백준] 11650 좌표 정렬하기(자바) (0) | 2021.10.04 |
[알고리즘/백준] 10989 수 정렬하기3(자바, 카운팅 정렬, Counting Sort) (0) | 2021.10.01 |
댓글