結果
| 問題 |
No.22 括弧の対応
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-09-10 13:51:29 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 33 ms / 5,000 ms |
| コード長 | 1,081 bytes |
| コンパイル時間 | 189 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-07-20 07:34:55 |
| 合計ジャッジ時間 | 1,490 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
N, K = map(int, input().split())
S = list(input())
L = K - 1
# 例:サンプル3)K=5番目の場合は、0から数えると、4番目になるため。
p = 1 if S[L] == "(" else -1
# 例)K番目の文字が「(」ならば、p = 1、4番目の文字が「)」ならば、p = -1。
# これは「(」ならば、→方向を、「)」ならば、←方向を数える。
# 例:サンプル3)5番目の文字は「(」なので、→方向を数えていく。
count = 0
while(0 <= L):
if S[L] == '(':
count += p
else:
count -= p
# 例)→の時は「(」ならばcountは1加算。「)」ならばcountは1減少。countは0以下でループは停止し、Lにはこの間の操作を繰り返した数を合計する。
# ←の時はその逆。
# 例:サンプル3)ループでそれぞれ、count = 1,2,3,2,1,0(終了) L=4+1,6,7,8,9 という値をとる。
if count <= 0:
break
L += p
print(L + 1)
# 最後に0からではなく、1から数えるために+1。
# 例:サンプル3)L + 1 =9 + 1 =10番目