水平11650:座標を整列
1698 ワード
質問リンク
入力した2つの座標を2列に入れて、Comparatorで並べ替えると、簡単に解くことができます.
Javaを使用した解答
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class BaekJoon11650 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int[][] locs = new int[n][2];
for(int i = 0; i < n; i++) { //2차원 배열에 입력받은 수 저장
StringTokenizer st = new StringTokenizer(br.readLine());
locs[i][0] = Integer.parseInt(st.nextToken());
locs[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(locs, new Comparator<int[]>() {
@Override
public int compare(int[] i1, int[] i2) {
if(i1[0] == i2[0]) { //첫번째 배열이 동일할 경우
return i1[1] - i2[1]; //두번째 배열 오름차순 정렬
} else { //첫번째 배열이 동일하지 않을 경우
return i1[0] - i2[0]; //첫번째 배열 오름차순 정렬
}
}
});
for(int i = 0; i < n; i++) {
bw.write(locs[i][0] + " " + locs[i][1] + "\n");
}
bw.flush();
}
}
Reference
この問題について(水平11650:座標を整列), 我々は、より多くの情報をここで見つけました https://velog.io/@keithekey/백준-11650번-좌표-정렬하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol