寝癖頭の解法

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

paizaラーニング: Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2

paizaラーニングのレベルアップ問題集「線形探索メニュー」からの出典です。
paiza.jp
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 と、それらの提出コードの解答例です。

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

・STEP: 1 偶数の探索

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
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();
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            if(a%2 == 0){
                System.out.println(i+1);
                break;
            }
        }
    }
}
・STEP: 2 奇数の探索

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
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);
        int n = sc.nextInt();
        int cnt = 0;
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            if(a%2 != 0){
                cnt = i;
            }
        }
        System.out.println(cnt+1);
    }
}
・STEP: 3 条件付き最小値

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
STEP: 3 条件付き最小値 
https://paiza.jp/works/mondai
提出コードの解答例
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 n = sc.nextInt();
        int[] lis = new int[n];
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            lis[i] = a;
        }
        int k = sc.nextInt();
        int ans = 100;
        for(int i = 0; i < n; i++){
            if(k <= lis[i] & lis[i] < ans){
                ans = lis[i];
            }
        }
        System.out.println(ans);
    }
}
・STEP: 4 条件付き最大値

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
STEP: 4 条件付き最大値 
https://paiza.jp/works/mondai
提出コードの解答例
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 n = sc.nextInt();
        int[] lis = new int[n];
        for(int i = 0; i < n; i++){
            int a = sc.nextInt();
            lis[i] = a;
        }
        int k = sc.nextInt();
        int ans = -100;
        for(int i = 0; i < n; i++){
            if(k >= lis[i] & lis[i] > ans){
                ans = lis[i];
            }
        }
        System.out.println(ans);
    }
}
・STEP: 5 点と点の距離

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
STEP: 5 点と点の距離 
https://paiza.jp/works/mondai
提出コードの解答例
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 n = sc.nextInt();
        int[][] lis = new int[n][2];
        for(int i = 0; i < n; i++){
            int x = sc.nextInt();
            int y = sc.nextInt();
            lis[i][0] = x;
            lis[i][1] = y;
        }
        int k = sc.nextInt();
        int cnt = 0;
        for(int i = 0; i < n; i++){
            if(Math.abs(lis[i][0]-lis[n-1][0])
               + Math.abs(lis[i][1]-lis[n-1][1]) <= k){
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}
・STEP: 6 長方形に含まれる点

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
STEP: 6 長方形に含まれる点 
https://paiza.jp/works/mondai
提出コードの解答例
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 n = sc.nextInt();
        int[][] lis = new int[n][2];
        for(int i = 0; i < n; i++){
            int x = sc.nextInt();
            int y = sc.nextInt();
            lis[i][0] = x;
            lis[i][1] = y;
        }
        int xs = sc.nextInt();
        int xt = sc.nextInt();
        int ys = sc.nextInt();
        int yt = sc.nextInt();
        int cnt = 0;
        for(int i = 0; i < n; i++){
            if(xs <= lis[i][0] & lis[i][0] <= xt
               & ys <= lis[i][1] & lis[i][1] <= yt){
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}
・STEP: 7 成績優秀者の列挙 1

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
STEP: 7 成績優秀者の列挙 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();
        String[] foo = new String[n];
        int[] bar = new int[n];
        for(int i = 0; i < n; i++){
            String s = sc.next();
            int t = sc.nextInt();
            foo[i] = s;
            bar[i] = t;
        }
        int k = sc.nextInt();
        for(int i = 0; i < n; i++){
            if(bar[i] >= k){
                System.out.println(foo[i]);
            }
        }
    }
}
・FINAL問題 【特殊な探索】 成績優秀者の列挙 2

paiza.jp

/*
Javaによる「線形探索メニュー」問題集 【特殊な探索】 成績優秀者の列挙 2 
FINAL問題 【特殊な探索】 成績優秀者の列挙 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();
        String[] foo = new String[n];
        int[] bar = new int[n];
        for(int i = 0; i < n; i++){
            String s = sc.next();
            int t = sc.nextInt();
            foo[i] = s;
            bar[i] = t;
        }
        int k = sc.nextInt();
        int l = sc.nextInt();
        for(int i = 0; i < n; i++){
            if(k <= bar[i] & bar[i] <= l){
                System.out.println(foo[i]);
            }
        }
    }
}

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