[Java]伯俊11650号
这是白峻11650号。
座標の整列
質問する
2 D平面上のN個の点を与える.x座標のインクリメント順に座標を並べ、x座標が同じ場合はy座標のインクリメント順に座標を並べ、プログラム出力を記述します.
入力
第1行は、点の個数N(1≦N≦100000)を与える.2行目から、N行においてi番点の位置xiとyiが与えられる.(−1000≦xi,yi≦100000)座標は常に整数であり、2つの位置が同じ点はない.
しゅつりょく
最初の行からN行の位置合わせの結果を出力します.
例
コード#コード#
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int X = Integer.parseInt(br.readLine());
int arr[][] = new int[X][2];
StringTokenizer st;
for(int i=0; i<X; i++) {
st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
br.close();
Arrays.sort(arr, (n1, n2) -> {
if(n1[0] == n2[0])
return n1[1] - n2[1];
else
return n1[0] - n2[0];
});
for(int i=0; i<X; i++)
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
に答える
2차원 배열
はArrays.sort()
でソートできません.でもArrayssort()内部はcompare
関数とcomparator
を用い,오버라이딩
により2次元配列を並べ替えることができる.今回はその方法も良かったのですが、람다식
を用いてソートしました.
同様であるが,ラムダ式は別の実装方法を必要とせず,直接関数として用いることができる.つまり、使いやすいということです.
x座標が同じ場合にy座標を比較するのでifelse文を用いて解決した.
文字列分離はStringTokenizer
を用いてStringTokenizerを生成するとともに、1行BufferedReader.readLine()
を入力し、スペース("")で区切る.
Reference
この問題について([Java]伯俊11650号), 我々は、より多くの情報をここで見つけました
https://velog.io/@yun12343/Java-백준-11650번
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int X = Integer.parseInt(br.readLine());
int arr[][] = new int[X][2];
StringTokenizer st;
for(int i=0; i<X; i++) {
st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
br.close();
Arrays.sort(arr, (n1, n2) -> {
if(n1[0] == n2[0])
return n1[1] - n2[1];
else
return n1[0] - n2[0];
});
for(int i=0; i<X; i++)
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
Reference
この問題について([Java]伯俊11650号), 我々は、より多くの情報をここで見つけました https://velog.io/@yun12343/Java-백준-11650번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol