寝癖頭の解法

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

paizaラーニング: Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3

paizaラーニングのレベルアップ問題集「線形探索メニュー」からの出典です。
paiza.jp
Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3と、それらの提出コードの解答例です。

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

・STEP: 1 指定された値の個数

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3
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();
        int[] num = new int[n];
        for(int i = 0; i < n; i++){
            num[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        int cnt = 0;
        for(int i = 0; i < n; i++){
            if(num[i] == k) cnt++;
        }
        System.out.println(cnt);
    }
}
・STEP: 2 指定された値の位置 1

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3
STEP: 2 指定された値の位置 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();
        int[] num = new int[n];
        for(int i = 0; i < n; i++){
            num[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        for(int i = 0; i < n; i++){
            if(num[i] == k){
                System.out.println(i+1);
                break;
            }else if(i == n-1){
                System.out.println(0);
            }
        }
    }
}
・STEP: 3 指定された値の位置 2

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3
STEP: 3 指定された値の位置 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);
        int n = sc.nextInt();
        int[] num = new int[n];
        for(int i = 0; i < n; i++){
            num[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        int ans = -1;
        for(int i = 0; i < n; i++){
            if(num[i] == k) ans = i;
        }
        System.out.println(ans+1);
    }
}
・FINAL問題 【指定された値の探索】指定された値の位置 3

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【指定された値の探索】指定された値の位置 3
FINAL問題 【指定された値の探索】指定された値の位置 3
https://paiza.jp/works/mondai
提出コードの解答例
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[] num = new int[n];
        for(int i = 0; i < n; i++){
            num[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        ArrayList lis = new ArrayList();
        for(int i = 0; i < n; i++){
            if(num[i] == k) lis.add(i+1);
        }
        if(lis.size() != 0){
            for(int i = 0; i < lis.size(); i++){
                System.out.println(lis.get(i));
            }
        }
    }
}

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