【覚え書き】paizaレベルアップ問題集>Cランクレベルアップメニュー>Java編>辞書式ソート

解答例コードをみて結構写しました。解答を見たとき、こ、これはずる・・もとい、賢いな!と思いました。多次元配列を使わずに通しているので。

import java.util.*;


public class Main {
    public static void main(String[] args) {
        // 自分の得意な言語で
        // Let's チャレンジ!!
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        
        String[] hoges = new String[num];
        
        for(int i=0; i<num; i++){
            String a = sc.next();
            String b = sc.next();
            
            if(a.length()==1){
                a = "0"+a;
            }
        
            if(b.length()==1){
                b = "0"+b;
            }
            
            //hoges[i] = hogea + hogeb;//0102
            hoges[i] = a + b;
        }
        
        
            
        Arrays.sort(hoges, Collections.reverseOrder());
        
        for (int i = 0; i < num; i++) {
            System.out.println(Integer.parseInt(hoges[i].substring(0,2)) + " " + Integer.parseInt(hoges[i].substring(2,4)));
        }

    }
}

配列hogesの中身

[0202, 0103]

リンゴ数を100の桁に、バナナ数を1の桁にのせて、リンゴ1バナナ3なら0103と4桁の数にし、その4桁の数で順位を見る。やられました。

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_sort_step3

paiza問題集
0

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です