CodeIQの「進捗やったったマーク」を解いたので、私が作成したコードを晒します。
10月5日の10時に回答締切なので、ネタバレを避けるためそれ以降に投稿しています。
設問
「進捗やったったマーク」は高さ X 幅 X の正方形の中にYのカタチをした文字を半角小文字の「y」で描きます。
真ん中の行より上は左右の(行数)の位置が「y」です。
例えば1行目なら左から1列目、右から1列目が「y」、2行目なら左から2列目、右から2列目が「y」です。
それ以外を半角ドット「.」にします。
真ん中の行以下は真ん中の列が「y」です。
それ以外を半角ドット「.」にします。
例1:高さ 1 幅 1 の進捗やったったマーク
y
例2:高さ 3 幅 3 の進捗やったったマーク
y.y .y. .y.
例3:高さ 5 幅 5 の進捗やったったマーク
y...y .y.y. ..y.. ..y.. ..y..
仕様
- 標準入力として1から100の整数が与えられる。
- 標準入力の数字が奇数の場合には「進捗やったったマーク」を出力する。
- 標準入力の数字が偶数の場合には「invalid」を出力する。
解答
言語はPython3を選択しました。
# coding: utf-8 number = int(input().strip().upper()) if number % 2 == 0: print("invalid") else: minus_index = -1 for index in range(number): dots = ['.' for i in range(number)] if index <= number // 2: dots[index] = "y" dots[minus_index] = "y" minus_index -= 1 else: dots[number // 2] = "y" for dot_or_y in dots: print(dot_or_y, end="") print()
コメント