コーディングテスト練習記録

7596 ワード

2022.01.14 23日目
白駿10814号(年齢別)
質問する
ネット低地に加入した人の年齢と名前は加入順に与えられる.この場合は、年齢が上がる順に、年齢が同じなら、先に加入した人が前に来る順に、プログラムを作成してください.
私の答え
  • 歳、名称2次元String配列で
  • を受信
  • の年齢に基づいてアレイ順序
  • を再定義する.
  • の昇順で、正数であれば
  • を置き換える
  • であれば、Xに代えて、先に加入した人の前の構造
  • となる.
    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            int N = scanner.nextInt();
    
            String[][] nArr = new String[N][2];
    
            for (int i = 0; i < N; i++) {
                nArr[i][0] = scanner.next();
                nArr[i][1] = scanner.next();
            }
    
            Arrays.sort(nArr, new Comparator<String[]>() {
                @Override
                public int compare(String[] o1, String[] o2) {
                    return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
                }
            });
    
            for (int x = 0; x < N; x++) {
                System.out.println(nArr[x][0] + " " + nArr[x][1]);
            }
    
        }
    }
    考える
  • Arrays.sort再定義問題