白駿8958号
質問リンク:白準8958号(OX試験)
Sysはinput()ではありません.stdin.readline()を使用してrstrip()を貼り付け、入力した最後に開行文字「n」を削除します.
その後、二重for文でリストの各要素を「O」と比較し、数を数えて加点し、求めて出力します.
テストケースのようにfor文を回してリスト形式で文字列を入力し、再びfor文を回して結果を出力する必要はないと思います.文の使用を減らす必要があるからです.
また,二重for文で文字を「O」と比較し,数を数えて加算出力する.
イニシャルコード
import sys
n = int(input())
l = list(sys.stdin.readline().rstrip() for _ in range(n))
for i in l:
sum = 0
score = 0
for j in i:
if j == 'O':
sum += 1
score += sum
else:
sum = 0
print(score)
まず、テスト例の個数を入力し、対応する個数を文に変換し、値をlist保存に変換します.Sysはinput()ではありません.stdin.readline()を使用してrstrip()を貼り付け、入力した最後に開行文字「n」を削除します.
その後、二重for文でリストの各要素を「O」と比較し、数を数えて加点し、求めて出力します.
に質問
テストケースのようにfor文を回してリスト形式で文字列を入力し、再びfor文を回して結果を出力する必要はないと思います.文の使用を減らす必要があるからです.
コードの変更
import sys
n = int(input())
for _ in range(n):
result = sys.stdin.readline().rstrip()
sum = 0
score = 0
for i in result:
if i == 'O':
sum += 1
score += sum
else:
sum = 0
print(score)
同様に、まずテスト例の個数を入力しましたが、以前とは異なり、文字列を1つずつ入力することでfor文とリストの使用を排除しました.また,二重for文で文字を「O」と比較し,数を数えて加算出力する.
Reference
この問題について(白駿8958号), 我々は、より多くの情報をここで見つけました https://velog.io/@msu122005/백준-8958번-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol