結果
| 問題 | No.22 括弧の対応 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-24 16:48:37 |
| 言語 | Python3 (3.14.3 + numpy 2.4.2 + scipy 1.17.0) |
| 結果 |
AC
|
| 実行時間 | 109 ms / 5,000 ms |
| コード長 | 1,681 bytes |
| 記録 | |
| コンパイル時間 | 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 |
ソースコード
# #---問題文---
# 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