結果

問題 No.22 括弧の対応
コンテスト
ユーザー RK-4869
提出日時 2026-03-24 16:48:37
言語 Python3
(3.14.3 + numpy 2.4.2 + scipy 1.17.0)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
AC  
実行時間 109 ms / 5,000 ms
コード長 1,681 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 334 ms
コンパイル使用メモリ 20,576 KB
実行使用メモリ 15,360 KB
最終ジャッジ日時 2026-03-24 16:48:47
合計ジャッジ時間 3,099 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# #---問題文---
# Orinoは、テキストの括弧の対応箇所を見つけるプログラムを書きたいと思っている。

# 括弧の対応とは、

# 1.与えられた文字列から、「(」の直後に「)」が来る文字があるとき、文字列からその2つの文字を削除する。
# 2.削除された文字を新たな文字列として、1.の処理を繰り返し、文字列が空になるまで繰り返す。

# そして、初めに与えられた文字列として考えた時の
# 番目文字と一緒に削除される
# 番目に対応する文字が「括弧の対応」であるとする。

# 「(」と「)」のみで構成される
# 文字の文字列が与えられ、
# さらに整数値
# が与えられる。

# このとき、
# 番目の文字と対応する文字の箇所の番目を求めてください。


# 与えられる文字列は、すべての文字で括弧の対応があると保証されるとする。


#1行目と2行目の入力値を書く
N, K = map(int, input().split())
S = input()

#括弧の片方を変数で後付けする。
target_kakko = K -1

#括弧の場所を保存するリストを作成する
kakko = []

#文字列を1文字ずつ確認していく。
for i in range(N):
    if S[i] == "(":
        kakko.append(i)
    else:
        left_kakko = kakko.pop()
        right_kakko = i
        
        #もしペアを取り出したどちらかが探しているKであれば片方を出力する、
        if left_kakko == target_kakko:
            print(right_kakko +1)
            break
        elif right_kakko == target_kakko:
            print(left_kakko+1)
            break
0