競技プログラミングというものがあると知り、やってみました。
ちゃんと競技(コンテスト)に参加したわけではなく、過去問をやってみただけですが、せっかくなので投稿します。
競技プログラミングではAtCoderというサービスが一番人気のようなので、登録しました。
競プロ典型90問という過去問の002 Encyclopedia of Parentheses(★3)をやってみることにしました。
(001は問題文を見た時点で断念しました)
Pythonの勉強をしたいなと考えていることもあり、Pythonを勉強しつつ、002 Encyclopedia of Parentheses(★3)の解説をしているウェブサイトを参考にしてプログラムを作成してみました。
競技プログラミングの技法(?)の一つであるbit全探索について知らなかったので、以下のサイトを参考にさせていただきました。
こわくないbit全探索2 基本編1: 簡単な例題でbit全探索をやってみよう!【競プロ解説】
競プロ典型 90 問 002 – Encyclopedia of Parentheses(★3)
とりあえず以下のプログラムでAC(正答)の判定を貰えました。
なんとなく理解できたので、これから公式の回答例や解説サイトを見て理解を深めていきたいと思います。
from itertools import product
def check(pro):
score=0
for bit in pro:
if bit==0:
score+=1
else:
score-=1
if score<0:
return False
return score==0
def output(pro):
string=""
for bit in pro:
if bit==0:
string+="("
else:
string+=")"
print(string)
i=int(input())
if i%2==0:
for pro in product((0, 1), repeat=i):
result=check(pro)
if result:
output(pro)
コメント
[…] 前回の続きです。 […]