寝癖頭の解法

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

paizaラーニング: Javaによる「データセット選択メニュー 」問題集 動的配列

paizaラーニングのレベルアップ問題集「データセット選択メニュー」からの出典です。
paiza.jp
Javaによる「データセット選択メニュー 」問題集 動的配列 と、それらの提出コードの解答例です。

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

・STEP: 1 ランダムアクセス

paiza.jp
配列の指定された場所にアクセスします。

/*
paizaラーニング: Javaによる「データセット選択メニュー 」問題集 動的配列 
STEP: 1 ランダムアクセス 
https://paiza.jp/works/mondai/data_structure/data_structure__array_step1
提出コードの解答例
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();
        int m = sc.nextInt();
        int[] lis = new int[n];
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            lis[i] = a;
        }
        System.out.println(lis[m-1]);
    }
}
・STEP: 2 複数回のランダムアクセス

paiza.jp
複数回、配列の指定された場所にアクセスします。

/*
paizaラーニング: Javaによる「データセット選択メニュー 」問題集 動的配列 
STEP: 2 複数回のランダムアクセス 
https://paiza.jp/works/mondai/data_structure/data_structure__array_step2
提出コードの解答例
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();
        int[] lis = new int[n];
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            lis[i] = a;
        }
        int q = sc.nextInt();
        for(int i = 0; i < q; i++){
            int b = sc.nextInt();
            System.out.println(lis[b-1]);
        }
    }
}
・STEP: 3 最大値と最小値

paiza.jp
3 つの数値の最大値と最小値の差を求めます。

/*
paizaラーニング: Javaによる「データセット選択メニュー 」問題集 動的配列 
STEP: 3 最大値と最小値  
https://paiza.jp/works/mondai/data_structure/data_structure__array_step3
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
import java.util.Arrays;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int[] lis = {a, b, c};
        Arrays.sort(lis);
        System.out.println(lis[2] - lis[0]);
    }
}
・FINAL問題 動的配列

paiza.jp
動的に要素数が変化する配列を扱います。

/*
Javaによる「データセット選択メニュー 」問題集 動的配列 
FINAL問題 動的配列  
https://paiza.jp/works/mondai/data_structure/data_structure__array_boss
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
import java.util.ArrayList;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int q = sc.nextInt();
        ArrayList lis = new ArrayList();
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            lis.add(a);
        }
        for(int i = 0; i < q; i++){
            int query = sc.nextInt();
            if(query == 0){
                int x = sc.nextInt();
                lis.add(x);
            }else if(query == 1){
                int num = lis.size() - 1;
                lis.remove(num);
            }else if(query == 2){
                int num = lis.size() - 1;
                for(int j = 0; j < num; j++){
                    System.out.print(lis.get(j) + " ");
                }
                System.out.println(lis.get(num));
            }
        }
    }
}

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