自転車とプログラミング

自転車メーカーに勤める会社員がプログラミングを学ぶ中で感じたことを書きます。最近サービス作りました。

paizaスキルチェックにチャレンジ! / Rubyの文字列マッチの文頭文末指定

こんにちは、Watanabeです。

就活的なところを見据えて競技プログラミングにチャレンジ!とpaizaを触り始めました。 触る前にすこし調べてみましたが、競技プログラミングは日本国内だと「AtCoder」の地位が圧倒的っぽい。

paizaは有料プログラミング学習サイト~エンジニア就職のビジネスモデルの一環で、スキルチェック的な立ち位置で運営されているようですね。 競プロ的なスキルチェック問題を解くと、アカウントのステータスやランクが上がってどのレベルのエンジニアかわかるようになっていて、求人を出している企業はそれをもとにスカウトもできたりするみたいです。面白いビジネスモデル👀

AtCoderよりもpaizaのほうがとっつきやすくて始めやすかったので、paizaを触ってます。いずれはAtCoderも触ってみて比較の記事を出せたらいいね。

paizaの流れ

paizaの中でいくつかコンテンツがあって、paizaラーニングが学習、レベルアップ問題集が模擬、スキルチェックがテスト(競プロ)の立ち位置になっています。

今回チャレンジしているのはレベルアップ問題集とスキルチェック。どちらもpaiza内のエディタで与えられた条件を満たす処理をコーディングしていく流れです。導入解説はオフィシャルに動画コンテンツが用意されています。手厚くて好印象。

paizaのエディタ

主要な言語はカバーされていて、入力補完もされるので良い感じでした。 コーディングして提出すると用意されたテストケースに沿ってテストが実行されて、それが通り具合で点数がでます。

今のところは最低レベルのDを恐る恐る触っています。Dでもちょっとひねりをきかせた問題がでると「あれ…?」とフリーズしてメソッドなんかが出なくなってしまったので要訓練です。

「RubySilver取ったんだけど全然だなー」とは思ったりしますがあっちは選択問題で、paizaはコーディングなのでより理解度が試されてますね。

文字列マッチング時の文頭と文末の指定

これもRubySilverでやったのにでてこなかったやつ。条件を満たせずに数点落としました。

"Ruby".match("^Ruby$")
#=> true 
#=> ^は文頭、$は文末をRubyの正規表現で表す

初歩も初歩なのですけどねー。何も見ずだとなかなか出てきませんでした。 他の基礎的な正規表現も復習しておきます。

  • .: 任意の1文字とマッチ
  • *: 直前の文字の0回以上の繰り返しとマッチ
  • +: 直前の文字の1回以上の繰り返しとマッチ
  • ?: 直前の文字の0回または1回の出現とマッチ
  • []: 文字クラス。括弧内の任意の文字とマッチ