[伯俊]年齢順(Java)
アルゴリズムの問題解決をブログにアップロードしたのは、コードを解答し、記録するためです.
これからは質問を吹き飛ばすよりも、リンクだけを残して、答えを見極めるために、私たちは皆さんに位置づけます!
📄 質問する
年齢順 年齢が同じ場合は入力順
ソート出力の問題.
Stringタイプの2次元配列に年齢と名前を格納 年齢順に並べ、名前を比較しなければ年齢順に並べ、年齢が同じなら入力順に並べ Stringタイプの2次元配列に年齢と名前を格納
実は今回初めてComparatorで練習のために上のパズルをランダ式スマートなIntellieJに変えてこの方法hooをお勧めしました! 上記と同様、年齢が同じ場合は入力順に並べ替える
コードソース:Stranger's LAB
st(ニックネームはこれですか…?のStranger's LABでは、問題の複数の解法があります.
最後に各解答の性能を比較し、問題を解いた後もよく見学します.
今回も全く思いもよらなかった驚くべき謎を発見し、クローンを作りながら理解しようと努力しました!入力年齢範囲に等しいサイズのStringBuilderアレイを作成する このアレイ内にStringBuilderを作成してマウント 年齢値をインデックスに配列の位置を指定して入力値を追加 基本的にはインデックスの年齢によるソートであり、年齢が同じであれば先に入力して入力するので、他のソートプロセスがない場合はソートする StringBuilderを含むアレイでループし、アレイ全体を追加して出力
これからは質問を吹き飛ばすよりも、リンクだけを残して、答えを見極めるために、私たちは皆さんに位置づけます!
📄 質問する
[伯俊]年齢順
👩💻 に答える
1.問題を理解する
この質問には、<年齢、名前>の値が入力されます.
1.問題を理解する
この質問には、<年齢、名前>の値が入力されます.
ソート出力の問題.
2.String[]+compareメソッド上書き
Comparator의 compare 메소드
乙override
年齢順import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String[][] arr = new String[N][2];
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = st.nextToken();
arr[i][1] = st.nextToken();
}
Arrays.sort(arr, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
}
});
StringBuilder sb = new StringBuilder();
for(int i =0; i < N; i++) {
sb.append(arr[i][0]).append(" ").append(arr[i][1]).append("\n");
}
System.out.println(sb);
}
}
3. String[][] + Comparator.comparingInt()
Comparator의 comparingInt 메소드
+람다식
年齢順実は今回初めてComparatorで練習のために上のパズルをランダ式スマートなIntellieJに変えてこの方法hooをお勧めしました!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
String[][] arr = new String[N][2];
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
arr[i][0] = st.nextToken();
arr[i][1] = st.nextToken();
}
Arrays.sort(arr, Comparator.comparingInt(o -> Integer.parseInt(o[0])));
StringBuilder sb = new StringBuilder();
for(int i =0; i < N; i++) {
sb.append(arr[i][0]).append(" ").append(arr[i][1]).append("\n");
}
System.out.println(sb);
}
}
4.StringBuilder(最適なパフォーマンス)👍)
コードソース:Stranger's LAB
st(ニックネームはこれですか…?のStranger's LABでは、問題の複数の解法があります.
最後に各解答の性能を比較し、問題を解いた後もよく見学します.
今回も全く思いもよらなかった驚くべき謎を発見し、クローンを作りながら理解しようと努力しました!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
// 입력되는 나이의 범위 : 1 ~ 200
StringBuilder[] sba = new StringBuilder[201];
for(int i = 0; i < sba.length; i++) {
sba[i] = new StringBuilder();
}
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
sba[age].append(age).append(" ").append(name).append("\n");
}
StringBuilder sb = new StringBuilder();
for(StringBuilder s : sba) {
sb.append(s);
}
System.out.println(sb);
}
}
Reference
この問題について([伯俊]年齢順(Java)), 我々は、より多くの情報をここで見つけました https://velog.io/@geesuee/백준-나이순-정렬자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol