寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ

paizaラーニングのレベルアップ問題集「Bランクレベルアップセット」からの出典です。
paiza.jp
Pythonによる「五目並べ」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 文字列の出力

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
STEP: 1 文字列の出力
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
for i in range(5):
    s = input()
    print(s)

・STEP: 2 五目並べ(1行)

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
STEP: 2 五目並べ(1行)
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
s = input()
if s == "OOOOO":
    print("O")
elif s == "XXXXX":
    print("X")
else:
    print("D")

・STEP: 3 五目並べ(横)

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
STEP: 3 五目並べ(横)
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
for i in range(5):
    s = input()
    if s == "OOOOO":
        print("O")
        break
    if s == "XXXXX":
        print("X")
        break
    if i == 4:
        print("D")

・STEP: 4 五目並べ(縦)

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
STEP: 4 五目並べ(縦)
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
lis = []
for i in range(5):
    s = input()
    lis.append(s)
for i in range(5):
    ans = lis[0][i] + lis[1][i] + lis[2][i] + lis[3][i] + lis[4][i]
    if ans == "OOOOO":
        print("O")
        break
    if ans == "XXXXX":
        print("X")
        break
    if i == 4:
        print("D")

・STEP: 5 五目並べ(斜め)

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
STEP: 5 五目並べ(斜め)
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
lis = []
for i in range(5):
    s = input()
    lis.append(s)
ans1 = lis[0][0] + lis[1][1] + lis[2][2] + lis[3][3] + lis[4][4]
ans2 = lis[0][4] + lis[1][3] + lis[2][2] + lis[3][1] + lis[4][0]
if (ans1 == "OOOOO") or (ans2 == "OOOOO"):
    print("O")
elif (ans1 == "XXXXX") or (ans2 == "XXXXX"):
    print("X")
else:
    print("D")

・FINAL問題: 五目並べ

'''
Pythonによる「Bランクレベルアップメニュー」問題集: 五目並べ
FINAL問題: 五目並べ
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
'''
# coding: utf-8
lis = []
for i in range(5):
    s = input()
    lis.append(s)
ans1 = lis[0][0] + lis[1][1] + lis[2][2] + lis[3][3] + lis[4][4]
ans2 = lis[0][4] + lis[1][3] + lis[2][2] + lis[3][1] + lis[4][0]
if (ans1 == "OOOOO") or (ans2 == "OOOOO"):
    print("O")
elif (ans1 == "XXXXX") or (ans2 == "XXXXX"):
    print("X")
else:
    for i in range(5):
        ans3 = lis[i]
        ans4 = lis[0][i] + lis[1][i] + lis[2][i] + lis[3][i] + lis[4][i]
        if (ans3 == "OOOOO") or (ans4 == "OOOOO"):
            print("O")
            break
        elif (ans3 == "XXXXX") or (ans4 == "XXXXX"):
            print("X")
            break
        elif i == 4:
            print("D")

2次元配列や文字列の扱いについての問題です。

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。