[白俊]10799-鉄棒(Python)



質問する


https://www.acmicpc.net/problem/10799

コミットコード

import sys

input = list(sys.stdin.readline())

open = 0
result = 0

for i in range(len(input)):
    if input[i] == '(':
        open += 1
    elif input[i] == ')':
        open -= 1
        if input[i-1] == '(':
            result += open
        else:
            result += 1

print(result)

結果



整理する


問題の説明


鉄の棒の長さを括弧で書きますか?()鉄棒を切断する問題を特定して使用する

コメント付きコード

import sys

input = list(sys.stdin.readline())

open = 0 # 현재 열려있는(?) 괄호 개수
result = 0 # 결과값

for i in range(len(input)):
    if input[i] == '(':
        open += 1
    elif input[i] == ')':
        open -= 1
        if input[i-1] == '(':  # 즉, '('다음에 바로 ')'가 나온 경우
            result += open
        else:
            result += 1

print(result)

に感銘を与える


実際、私は理解する方法で実現しましたが、タイムアウトして(本当に時間がかかりました)、最終的に他の人が私より問題を理解しやすい方法を見て、コードを再開しました.😥 やはり問題を読むことや盲目的な符号化よりも、問題を理解して符号化する前に、アルゴリズムを頭の中で練習する必要があると思います...!
(参照:https://ilgls1.tistory.com/16)