1. paizaラーニングトップ
  2. レベルアップ問題集
  3. スタック・キューメニュー(言語選択)
  4. 問題一覧 Clojure(Beta)編
  5. 括弧列 Clojure(Beta)編

スタック・キューメニューのサムネイル
括弧列 Clojure(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

N 文字の 括弧列 S が与えられます。与えられた 括弧列 正しい括弧列 かどうか判定してください。

ここで、 括弧列 とは以下のように定義します。

* ( または ) または空文字のみで構成される文字列

また、 正しい括弧列 とは以下のように定義します。

1. 空文字列は正しい括弧列である。
2. 文字列 s が正しい括弧列であるとき、 ( + s + ) は正しい括弧列である。
3. 文字列 s , t が正しい括弧列であるとき、 s + t は正しい括弧列である。

たとえば、以下の文字列はすべて 正しい 括弧列です。

()
(())
()()
(()())
((((())())()))


また、以下の文字列はすべて 正しくない 括弧列です。

)(
(
())
((())
(()()))((()())()

入力される値

N
S


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

S が正しい括弧列の場合は Yes を、正しくない括弧列の場合は No を出力してください。末尾には改行を入れ、余計な文字、空行を含んではいけません。

Yes

または
No

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ N は 1 以上 50,000 未満
・ S の各文字は ( または )

入力例1

4
(())

出力例1

Yes

入力例2

2
)(

出力例2

No

入力例3

14
((((())())()))

出力例3

Yes

問題一覧へ戻る

ページの先頭へ戻る