728x90
인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의 수강 후 복습 풀이 코드를 정리하고 있습니다.
- 문제 링크 : https://cote.inflearn.com/contest/10/problem/06-07
- 문제 설명 : n개의 (x,y) 좌표가 주어졌을 때, 오름차순으로 정렬하는 문제(x가 같다면 y값을 비교)
풀이
- Comparable 인터페이스 구현과 Collections.sort 메서드를 사용하여 풀이
package inflearn.sorting_searching;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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 (x == o.x) return y - o.y;
else return x - o.x;
}
}
//좌표 정렬
public class Main6_7 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
List<Pos> list = new ArrayList<>();
StringTokenizer st = null;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
list.add(new Pos(x, y));
}
Collections.sort(list);
for (Pos pos : list) {
System.out.println(pos.x + " " + pos.y);
}
}
}
댓글