11650 좌표 정렬하기
문제 이해
(x,y) 좌표가 여러 개 주어질 것이다.
x 기준 오름차순으로 정리하고, 만약 x 좌표가 동일하다면 y좌표를 기준으로 오름차순 정리하면 된다.
문제 풀이
간단한 문제이다.
Java에서 이미 주어지고 있는 Collections.sort() 메서드를 활용하면 될 것이다.
단지, (x,y) 총 2개 좌표가 존재하기 때문에 클래스를 하나 만들어주고, 이후에 Comparable 인터페이스를 상속하여 compareTo 메서드를 고쳐주면 될 것이다.
코드
import java.io.*;
import java.util.*;
class Point implements Comparable<Point>{
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Point p) {
if(this.x!=p.x) {
// x값이 다르다면 x를 기준으로 오름차순 정렬
// 오름차순 정렬이므로 this.x - p.x를 반환해야 한다
return this.x - p.x;
}
else return this.y - p.y;
// x 값이 같은 Case이므로, y를 기준으로 오름차순 정렬
}
}
public class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
FastReader sc = new FastReader();
ArrayList<Point> p = new ArrayList<Point>();
int N = sc.nextInt();
for(int i =0;i<N;i++) {
p.add(new Point(sc.nextInt(), sc.nextInt()));
}
Collections.sort(p); // Sorting이 이뤄짐
StringBuilder sb = new StringBuilder();
for(Point tmp:p) {
sb.append(tmp.x).append(" ").append(tmp.y).append("\n");
}
System.out.println(sb);
}
static class FastReader // 빠른 입력을 위한 ㅡㅋㄹ래스
}
결과
import java.io.*;
import java.util.*;
class Point implements Comparable<Point>{
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Point p) {
if(this.x!=p.x) {
// x값이 다르다면 x를 기준으로 오름차순 정렬
// 오름차순 정렬이므로 this.x - p.x를 반환해야 한다
return this.x - p.x;
}
else return this.y - p.y;
// x 값이 같은 Case이므로, y를 기준으로 오름차순 정렬
}
}
public class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
FastReader sc = new FastReader();
ArrayList<Point> p = new ArrayList<Point>();
int N = sc.nextInt();
for(int i =0;i<N;i++) {
p.add(new Point(sc.nextInt(), sc.nextInt()));
}
Collections.sort(p); // Sorting이 이뤄짐
StringBuilder sb = new StringBuilder();
for(Point tmp:p) {
sb.append(tmp.x).append(" ").append(tmp.y).append("\n");
}
System.out.println(sb);
}
static class FastReader // 빠른 입력을 위한 ㅡㅋㄹ래스
}
Author And Source
이 문제에 관하여(11650 좌표 정렬하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@idj7183/11650-좌표-정렬하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)