[Swift]白駿10799-鉄棒

1001 ワード


質問リンク
正直、解けなかった🥲
だからこの解答はブログの解答を参考にしました(リンクできるかどうか分からないので打っていませんが、Googleのswift解答を検索して数分もしないうちに彼らのものを見ました)
そしてBaek Junサイトで他の人の解答を見た結果!!コアは、レーザー()の場合を1束と見なし、この場合にもう1本の棒の数を増やすことです.
だから.
  • "(もしそうであれば)、棒が1本追加されるのでスタック+1
  • “)”
  • 前の文字が「(」であれば「レーザー」と見なし、countにスタック(ロッド数)を1つ加え、加えたレーザーの半分「(」)を加えたので、スタックを1つ追加-
  • でなければ、棒の末端、count+1、stack-1とします.
  • プールコード

    
    let line = readLine()!.map{String($0)}
    let stack = 0
    let count = 0
    
    for i in 0..<line.count {
        if line[i] == "(" {
            stack += 1
        } else {
            stack -= 1
            if line[i-1] == "(" {
                count += stack
            } else {
                count += 1
            }
        }
    }
    
    print(count)