LoginSignup
0
0

More than 1 year has passed since last update.

[paiza]スキルチェック見本問題 Java 偶奇の判定/曜日の判定 (paizaランク D 相当)

Last updated at Posted at 2021-09-15

初めに

今回2つのスキルチェック問題に挑戦しました。
Dレベルにしては、少し難しく感じました。

:fist:①偶奇の判定

長さ N の数列Aが与えられます。
この数列に含まれる偶数の要素の個数と、奇数の要素の個数を答えてください。

解答コード(自作)

paizaの解答と比べるとあまりスマートとは言えませんが・・・
なんとか正解しました。
拡張for文マスターできれば色々できますね。


import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
//与えられる数字をキャッチします。
        int n = sc.nextInt();
//奇数、偶数の初期値を0でセットします。
        int even = 0;
        int odd = 0;
//n個の箱を持つ、int型の配列を作成します。
        int[] a = new int[n];
//以下for文です。n行分のデータを配列に入れていきます。
        for(int i=0; i<n; i++){
            a[i]= sc.nextInt();
        }
//以下、拡張for文です。配列の中身を取り出していきます。
        for(int x:a)
//偶数を見つけたらevenの値が1ずつ増えます。
            if(x%2==0){
               even = even +1;
            }else{
                odd = odd +1;
            }
        }

        System.out.print(even + " " + odd);
    }
}

:fist:②曜日の判定

ある月の 1 日は日曜日、 2 日は月曜日...です。X日は何曜日でしょう。

・・・?:frowning2:

・・・?:frowning2:

解答コード(自作)

1日が日曜なら、、
7/14/21/28の「7」で割れる数字が来たら、Sat。
1と、8/15/22/29の「7」で割ってあまり1が来たら、Sun。
2と、9/16/23/30の「7」で割ってあまり2が来たら、Mon。という感じで良いのかな。

import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        if(x%7==0){
            System.out.println("Sat");
        }else if((x%7==1)||(x==1)){
            System.out.println("Sun");
        }else if((x%7==2)||(x==2)){
            System.out.println("Mon");
        }else if((x%7==3)||(x==3)){
            System.out.println("Tue");
        }else if((x%7==4)||(x==4)){
            System.out.println("Wed");
        }else if((x%7==5)||(x==5)){
            System.out.println("Thu");
        }else if((x%7==6)||(x==6)){
            System.out.println("Fri");
        }
    }
}

修正バージョン

paizaの解答を確認し以下の通りに修正しました。
確かに、実際に手計算してみると、orの条件が無駄だったことに気づきました・・
if((x%7==2)||(x==2)) は、(x%7==2)で十分でした。

import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        if(x%7==0){
            System.out.println("Sat");
        }else if(x%7==1){
            System.out.println("Sun");
        }else if(x%7==2){
            System.out.println("Mon");
        }else if(x%7==3){
            System.out.println("Tue");
        }else if(x%7==4){
            System.out.println("Wed");
        }else if(x%7==5){
            System.out.println("Thu");
        }else if(x%7==6){
            System.out.println("Fri");
        }
    }
}

終わり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0