ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

[yukicoder] No.446 ゆきこーだーの雨と雪 (1)

逆転の発想?

No.446 ゆきこーだーの雨と雪 (1) - yukicoder

この問題はプロジェクトコンテストのジャッジする側の問題となっています。答えが問題文で与えられたている状況下で、(ここで答えは数値の範囲)、その入力が正しいかどうかをジャッジするという趣旨の問題です。

まあ、そのジャッジするためのコードもジャッジされるんですが。

問題は、入力が決められた数値の範囲にあるかどうかを判定するので、文字列が数値かどうか判定することも必要です。

文字列が数値化どうかを判定する方法がJavaAPIにないか探したんですが、見つからなかったので、次のサイトが役に立ちました。

teratail.com

このコードを元に解答を作りました。

import java.util.Scanner;

public class Exec0446 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String A = scan.next();
        String B = scan.next();
        scan.close();
        if(isNumber(A) && isNumber(B)) {
            System.out.println("OK");
        }else {
            System.out.println("NG");
        }
    }
    public static boolean isNumber(String num) {
        try {
            if(num.length() > 1 && num.substring(0, 1).equals("0")) {
                return false;
            }
            int t = Integer.parseInt(num);
            if(t > 12345) {
                return false;
            }
            return true;
            } catch (NumberFormatException e) {
            return false;
        }
    }
}