CodeIQの「進捗プログレスマーク」解答

CodeIQの「進捗プログレスマーク」を解いたので、私が作成したコードを晒します。

11月7日の10時に回答締切なので、ネタバレを避けるためそれ以降に投稿しています。

www.kato-eng.info

設問

「進捗プログレスマーク」は高さ X 幅 X の正方形の中に P のカタチをした文字を半角小文字の「p」で描きます。
一番上と真ん中の行は全て列が「p」です。
それ以外の真ん中より上については左右の端のみが「p」です。
それ以外の真ん中より下については左端のみが「p」です。
それ以外を半角ドット「.」にします。

例1:高さ 1 幅 1 の進捗プログレスマーク

p

例2:高さ 3 幅 3 の進捗プログレスマーク

ppp
ppp
p..

例3:高さ 5 幅 5 の進捗プログレスマーク

ppppp
p...p
ppppp
p....
p....

仕様

  • 標準入力として1から100の整数が与えられる。
  • 標準入力の数字が奇数の場合には「進捗プログレスマーク」を出力する。
  • 標準入力の数字が偶数の場合には「invalid」を出力する。

解答

言語はPython3を選択しました。

# coding: utf-8
number = int(input().strip().upper())
if number % 2 == 0:
print("invalid")
else:
middle_line = number // 2
for line in range(number):
if line == middle_line or line == 0:
print_line = 'p' * number
elif line < middle_line:
print_line = 'p' + ('.' * (number - 2)) + 'p'
else:
print_line = 'p' + '.' * (number - 1)
print(print_line)

コメント

タイトルとURLをコピーしました