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