Java入門(第3回)

前回振り返り

その前に・・・

振り返りのフレームワーク YWT(やったこと/わかったこと/次にやること)

次回よりYWTを活用し、皆さんの理解度を確認していきます。

Y やったことW わかったことT 次にやること
・hoge
・hoge
・hoge
・hoge
・hoge
・hoge
それぞれ箇条書きで完結に纏めてみましょう。

Java実行方法

ソースの左側をダブルクリックすることでブレイクポイントが設定でき、デバック実行の際に変数の値を確認することができる。

前回演習問題の解答例

問題1

前回演習問題の問題3[FizzBuzz]の入力値が文字列Sであった場合もエラーとせず、入力された文字をそのまま返すように修正してください。

解答例

package sample;

import java.util.Scanner;

public class Sample3 {

    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);		
        String input = sc.next();

        try {
            int num = Integer.parseInt(input);
            System.out.println(getFizzBuzz(num));
        } catch (NumberFormatException nfex) {
            System.out.println(input);
        }

        sc.close();
    }
    static String getFizzBuzz(int n) {
        if (n % 3 == 0 && n % 5 == 0)
            return "FizzBuzz";
        if (n % 3 == 0)
            return "Fizz";
        if (n % 5 == 0)
            return "Buzz";
        return Integer.valueOf(n).toString();
    }
}
問題2

問題文

w を、英小文字のみからなる文字列とします。 w が以下の条件を満たすならば、w を美しい文字列と呼ぶことにします。

  • どの英小文字も、w の中に偶数回出現する。

文字列 w が与えられます。w が美しい文字列かどうか判定してください。

制約

  • 1≤∣w∣≤100
  • w は英小文字 (az) のみからなる文字列である

入力

入力は以下の形式で標準入力から与えられる。

w

出力

w が美しい文字列ならば Yes を、それ以外の場合は No を出力せよ。


入力例 1

abaccaba

出力例 1

Yes

a が 4 回、b が 2 回、c が 2 回、それ以外の英小文字が 0 回出現します。


入力例 2

hthth

出力例 2

No

解答例

package sample;

import java.util.Scanner;

public class Sample5 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] chararr = str.toCharArray();
 
        for(char x: chararr){
            int count = 0;
            for(char c: chararr){
                if(x == c){
                    count++;
                }
            }
            if (count%2!=0){
                System.out.println("No");
                sc.close();
                return;
            }
        }
        System.out.println("Yes");
        sc.close();
        return;
    }

}

今回の演習問題

問題1

問題文

幼稚園に通う 2 人の子供がキャンディーの取り合いをしています。

3 個のキャンディーパックがあり、それぞれのパックにはキャンディーが abc 個入っています。

先生はこの 3 個のパックを、キャンディーの個数が等しくなるように 2 人に分けようとしています。そのような分け方が可能かどうかを判定してください。

ただし、キャンディーをパックから取り出すことはできず、それぞれのパックをそのままどちらかの子供にあげる必要があります。

制約

  • 1≦a,b,c≦100

入力

入力は以下の形式で標準入力から与えられる。

a b c

出力

キャンディーを同じ個数に分けられるなら Yes を、そうでなければ No を出力せよ。


入力例 1

10 30 20

出力例 1

Yes

ひとりめの子供に 30 個のキャンディーの入ったパックを、もう一方の子供に 10 個と 20 個のキャンディーの入ったパックをあげると、2 人のもらうキャンディーの個数を等しくすることができます。


入力例 2

30 30 100

出力例 2

No

この場合、100 個のキャンディーの入ったパックを貰った子供は必ずもう一方の子供より多くのキャンディーを貰うことになってしまいます。

3 つすべてのパックをどちらかの子供にあげるように分けなければならないことに注意してください。


入力例 3

56 25 31

出力例 3

Yes
問題2

問題文

山田くんはペンキをこれまでに3つ買いました。おととい買ったペンキの色は a , 昨日買ったペンキの色は b , 今日買ったペンキの色は c です。各ペンキの色は1以上100以下の整数で表されます。 山田くんは忘れん坊なため、同じ色のペンキを買ってしまっていることがあります。山田くんが買ったペンキの色の種類の個数を教えてあげてください。

制約

  • 1≦a,b,c≦100

入力

入力は以下の形式で標準入力から与えられる。

a b c

出力

山田くんが買ったペンキの色の種類の個数を出力せよ。


入力例 1

3 1 4

出力例 1

3

色 1,3,4 の 3 種類です。


入力例 2

3 3 33

出力例 2

2

色 3,33 の 2 種類です。

コメント