寝癖頭の解法

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

paizaラーニング: Javaによる「二重ループメニュー 」問題集(活用編)

paizaラーニングのレベルアップ問題集「二重ループメニュー 」からの出典です。
paiza.jp
Javaによる「二重ループメニュー 」問題集(活用編)と、それらの提出コードの解答例です。

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

・STEP: 1 行列の転置

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 1 行列の転置 
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 k = sc.nextInt();
        int[][] num1 = new int[n][k];
        for(int i = 0; i < n; i++){
            for(int j = 0; j < k; j++){
                int x = sc.nextInt();
                num1[i][j] = x;
            }
        }
        int[][] num2 = new int[k][n];
        for(int i = 0; i < n; i++){
            for(int j = 0; j < k; j++){
                num2[j][i] = num1[i][j];
            }
        }
        for(int i = 0; i < k; i++){
            for(int j = 0; j < n; j++){
                if(j < n-1){
                    System.out.print(num2[i][j] + " ");
                }else{
                    System.out.println(num2[i][j]);
                }
            }
        }
    }
}
・STEP: 2 かけ算表

paiza.jp

/*
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);
        int n = sc.nextInt();
        int[] tempo = new int[n];
        int[][] num = new int[n][n];
        for(int i = 0; i < n; i++){
            int m = sc.nextInt();
            tempo[i] = m;
        }
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                num[i][j] = tempo[i] * tempo[j];
                if(j < n-1){
                    System.out.print(num[i][j] + " ");
                }else{
                    System.out.println(num[i][j]);
                }
            }
        }
    }
}
・STEP: 3 素数の個数

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 3 素数の個数 
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 = 1;
        if(n == 2){
            System.out.println(cnt);
        }else{
            for(int i = 2; i <= n; i++){
                for(int j = 2; j < i; j++){
                    if(i%j == 0) break;
                    if(j == i-1) cnt++;
                }
            }
            System.out.println(cnt);
        }
    }
}
・STEP: 4 log2

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 4 log2 
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 = 1; i <= n; i++){
            int num = i;
            while(num%2 == 0){
                num = num/2;
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}
・STEP: 5 スーパー鳩時計

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 5 スーパー鳩時計 
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
public class Main{
    public static void main(String[] args){
        for(int t = 0; t < 24; t++){
            for(int m = 0; m < 60; m++){
                int foo = t + m;
                if(foo%15 == 0) System.out.println("FIZZBUZZ");
                else if(foo%3 == 0) System.out.println("FIZZ");
                else if(foo%5 == 0) System.out.println("BUZZ");
                else System.out.println();
            }
        }
    }
}
・STEP: 6 格子点

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 6 格子点 
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
public class Main{
    public static void main(String[] args){
        int ans = 0;
        for(int x = 1; x < 98; x++){
            for(int y = 1; y < 98; y++){
                if(x*x*x + y*y*y < 100000){
                    if(ans <= x*y){
                        ans = x*y;
                    }
                }
            }
        }
        System.out.println(ans);
    }
}
・STEP: 7 お金の支払い

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
STEP: 7 お金の支払い 
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 x = sc.nextInt();
        int y = sc.nextInt();
        int z = sc.nextInt();
        int ans = 3001;
        int foo = z/x;
        int bar = z/y;
        for(int i = 0; i <= foo; i++){
            for(int j = 0; j <= bar; j++){
                int k = x*i + y*j;
                if(k <= z && i+j+(z-k) < ans){
                    ans = i+j+(z-k);
                }
            }
        }
        if(ans == 0){
            System.out.println(z);
        }else{
            System.out.println(ans);
        }
    }
}
・FINAL問題: 二重ループ:活用編 三角形の探索

paiza.jp

/*
Javaによる「二重ループメニュー 」問題集(活用編)
FINAL問題: 二重ループ:活用編 三角形の探索 
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 = 1; i <= n-2; i++){
            for(int j = 1; j < n-i; j++){
                int k = n - (i+j);
                if(i*i == j*j + k*k){
                    cnt++;
                }
            }
        }
        if(cnt == 0){
            System.out.println("NO");
        }else{
            System.out.println("YES");            
        }
    }
}

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