ミヤ.com

元女子大生。

Java修行 番外編 成長を感じる?過去のコードと比較

こんにちは。 いきなり番外編のミヤコです。

 

yukicoder競技プログラミングの問題をいくつか解いていて、

うっかり昔解いた問題を、気づかず再び解いていました。

 

提出履歴にしっかり記録されていたので、

「過去の私はどんなコードを提出したのかしら」と確認してみることに。。。

f:id:xxmiyacomxx:20170914093716p:plain

 

問題 No.46 はじめのN歩

 

1歩でぴったりaセンチメートル歩ける。
bセンチメートルの区間を歩くのに最小で何歩歩く?
なお、区間はオーバーしても良い。

No.46 はじめのn歩 - yukicoder

 

入力

a b

 

出力

歩数を答える。

 

過去の解答(2017.02.10)

 

約半年前。めちゃめちゃ昔というわけでもないですが。

public static void main(String[] args){

    Scanner input=new Scanner(System.in);
    int a = input.nextInt();
    int b = input.nextInt();

    int steps = b/a; //歩数

    if(b%a!=0){
      steps++;
    }
    System.out.println(steps);
}

 

stepsという整数を用意してb/aを計算。

割り切れたらそのまま出力し、割り切れなかったらstepsを1増やして出力。

 

 

現在の解答(2017.09.11)

 

こちらです。

 

public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        int b = input.nextInt();
        
        if(b%a==0){
            System.out.print(b/a);
        }else{
            System.out.print((int)(b/a)+1);
        }
}

 

ifを使って、割り切れる場合と割り切れない場合で出力。

考え方自体は、問題の性質上同じですが、

なんとなく(int)(b/a)+1というところから、書きながら考えている感じがします。

 

同じ問題でも、自分の書き方に違いが出ているのは、とても面白いですね。

 

そして、過去の"steps"を使用している私、なんとなくオシャレ。

ドヤ顔で書いていたことでしょう。

 

ぶっちゃけ書き方は好みの問題になると思いますが、

昔と今で書いたコードを比較してみると、意外な発見があるかもしれません。

 

本日も読んでくださり、ありがとうございます!(*^_^*)