寝癖頭の解法

勉強中の覚え書きを投稿、更新していきます。

paizaラーニング: Javaによる「Bランクレベルアップメニュー」問題集: 文字と整数の組のソート

paizaラーニングのレベルアップ問題集「Bランクレベルアップセット」からの出典です。
paiza.jp
「文字と整数の組のソート」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 インクリメント
 整数 n が入力されるので、その値に1を足した値を出力してください。

/*
Javaによる「文字と整数の組のソート」問題集
STEP: 1 インクリメント
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(n+1);
    }
}

・STEP: 2 数字のみの出力
 1行目に行数を表す整数 n、続く n 行で m 個の「文字」と「整数」の組が空白区切りで入力されます。
 n 個の整数だけをそのまま順に出力してください。

/*
Javaによる「文字と整数の組のソート」問題集
STEP: 2 数字のみの出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String N = sc.nextLine();
        int n = Integer.parseInt(N);
        for(int i = 0; i < n; i++){
            String str = sc.next();
            int num = sc.nextInt();
            System.out.println(num);
        }
    }
}

・STEP: 3 昇順ソート出力
 1行目でユーザーが1つ与えられます。
 n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
 その連想配列(辞書)の中で1行目で与えられたユーザー名と、ユーザー名に対応する血液型を表示してください。

/*
Javaによる「文字と整数の組のソート」問題集
STEP: 3 昇順ソート出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String N = sc.nextLine();
        int n = Integer.parseInt(N);
        ArrayList list = new ArrayList();
        for(int i = 0; i < n; i++){
            int num = sc.nextInt();
            list.add(num);
        }
        Collections.sort(list);
        for(int m = 0; m < list.size(); m++){
            System.out.println(list.get(m));
        }
    }
}

・FINAL問題: 文字と整数の組のソート
 1行目に行数を表す整数 n、続く n 行の各行で「文字」と「整数」の組が空白区切りで入力されます。
 n 個の組を、「整数」の値で昇順に並べ変え、「文字」を出力してください。

/*
Javaによる「文字と整数の組のソート」問題集
FINAL問題: 文字と整数の組のソート
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
    public static void main(String[] args) {
        TreeMap<Integer, String> tm = new TreeMap<Integer, String>();
        Scanner sc = new Scanner(System.in);
        String N = sc.nextLine();
        int n = Integer.parseInt(N);
        for(int i = 0; i < n; i++) {
        	String foo = sc.next();
        	String  Bar = sc.next();
        	int bar = Integer.parseInt(Bar);
        	tm.put(bar, foo);
        }
        for(Integer key : tm.keySet()) {
        	System.out.println(tm.get(key));
        }
    }
}

TreeMap クラスを使うことで Map の値をキーの昇順に自動的にソートできます。

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。