👀

韓国のAtcoder 백준(ペクジュン)を紹介する

2024/03/23に公開

はじめに

自分は現在韓国の大学で情報分野を専攻しているのですが、学科の元々凄腕の開発者だった教授に韓国の競技プログラミングサイトである백준(ペクジュン)をおすすめされたので今回はそれについて1年ほど使ってみた感想やAtcoderとの違いについて簡単に紹介していこうと思います。

백준(以下ペクジュン)とは

ペクジュンとは2010年、최백준(チェペクジュン)によって開設された韓国の競技プログラミングサイト(アルゴリズムトレーニングサイト)のうちの一つで、一般的な競技プログラミングサイト同様コンテストがあったり、様々な種類のアルゴリズム問題を解くことができます。ペクジュンの一番の特徴は掲載されている問題の数が非常に多く、またc++やpythonなどの主要な言語に加えてBrain**やwhitespaceなどのマイナー言語にも対応している点です。全部韓国語ですがGoogle翻訳すれば問題なく理解できると思いますのでサイト内一度を覗いてみてください😀

https://www.acmicpc.net/

https://solved.ac/

↑solved.acについてはこれから説明していきます

初め方

結論から言うとペクジュンもAtcoder同様、主に二つのWebサイトを使っていくことになります(AtcoderとAtcoderProblemsみたいな感じ)。基本的な使い方は以下の3ステップです。

①ペクジュン会員登録(Atcoderにあたる)
②ペクジュンとsolved.acの連携(solved.acはAtcoderでいうAtcoderProblemsにあたる)
③solved.ac(AtcoderProblems)で問題を解いていく

まず①と②に関しては書いてあるとおりペクジュンのサイトに入って会員登録をしてください。登録が終わったら設定(画面右上にある)の一覧の場所にsolved.acという欄があるためそこでペクジュンとsolved.acを連携させてください(連携するとそのままsolvedサイトに飛べると思います)。ペクジュンのサイト自体はAtcoderみたいに基本コンテストがある時しか使わないのでここからはAtcoderProblemsの役割を担うsolvedについて説明していきます。

まずsolved.acに入ると↓のような画面が出ると思います
スクリーンショット 2023-05-29 7.56.08.png
この画面一番上の문제(問題)という部分を押すとスクリーンショット 2023-05-29 7.56.53.png
の画面が出るのであとは基本的にこのブロンズの問題から解いていきます。難易度順としては

ブロンズ<シルバー<ゴールド<プラチナ<ダイヤモンド<ルビー(それぞれV~Iにかけて難しくなる)

という感じです。先輩の話を聞いたりネットで色々調べてみたところゴールド~プラチナくらいまで解ければ大体のコーディング試験はパスできるそうです(韓国の場合)。今回は試しに一番上のブロンズV(最も簡単なランク)の問題を解いてみます。先ほどの画面のブロンズVの場所を押すと↓の画面が出ます。
スクリーンショット 2023-05-29 8.08.12.png
今回は一番上のA+Bをとくのでここを押すとスクリーンショット 2023-05-29 8.11.11.png
問題が出てきます(google翻訳済み)。あとは画面上の提出ボタンからコードを書いて提出できます。
スクリーンショット 2023-05-29 8.12.18.png
スクリーンショット 2023-05-29 8.13.04.png
google翻訳しているので変な日本語になってますが、そうだった!の場合は無事正解、間違っていますの場合は不正解ということになる。もし文法エラー等あれば何のエラーか表示されます。

基本的な使い方はこんな感じですが、solved.acはAtcoderProblemsのように自分が今まで解いてきた問題のデータなど見る場所があります。solved.acのホーム画面に?マークがあると思うのですが、そこを押すと
スクリーンショット 2023-05-29 8.24.10.png
スクリーンショット 2023-05-29 8.24.19.png
ここで自分が今まで解いてきた問題のアルゴリズム分類や難易度、コントゥリビューションなどを確認することができます(上記の画像は半年くらい前のものなのでstreakが全然埋まってないです)。まだ紹介してない機能もたくさんあるのですが長くなるので一旦ここまでにします。

おすすめの進め方3選

ここまでで基本的な使い方は紹介してきました。しかしペクジュンは問題の数が多くブロンズVから全て問題を順に解いているといつまでたっても次のレベルに進めないので、以下におすすめの精進法3選を紹介します!

①「入門」問題を解く

これから紹介する①~③つは以下の赤で囲んだ部分を使っていきます。ペクジュンというよりそもそもプログラミングを始めたばかりに方には「入門(翻訳しない状態だとsprouts)」がいいと思います。

ここでは基本的な入出力からforの使い方等基本的な問題から解いていけます↓

②「CLASS」の問題を解いていく

「Class」で厳選された問題を難易度順に解くことがきます。①の「入門」を終えたら基本はこちらをやるのがいいかと思います。厳選された数十問を解くので効率的にステップアップできます!

↑すみません画像切れてました

③アルゴリズム別で問題を解く

「タグ(翻訳なしだとTags)」の箇所でアルゴリズム別に問題を解くこともできます。練習したいアルゴリズムの問題をピンポイントで解けるのでコーディングテストの練習にも良さそうです!

1年ほど使ってみた感想

1年ほど使ってみてペクジュンはAtcoderに比べて解いていて楽しい問題が多いなと思いました。Atcoderは結構数学的な問題が多く問題文を見ただけで拒否反応を起こす問題が多いですが、ペクジュンは数式はほとんど出てこず問題文をちゃんと読んでじっくり考えれば解ける基本的な実装問題が多い気がしました(難易度が上がるにつれてアルゴリズムの知識が求められます)。ただ日本語訳で解く場合は問題文がたまにおかしな翻訳になることがあるのでそこは若干不便かもしれません。

終わりに

ペクジュンやAtcoderで培う技術は実際のwebアプリケーション開発ではそこまで使う機会がないかもしれません。がこのようなコンテンツを通してその言語の基礎文法を習得できたり、計算量を意識したコーディング、またプログラミングをするということの習慣化など様々なメリットがあると思うので、皆さんも是非ペクジュンやAtcoderに挑戦してみてください!自分はまだAtcoderで茶色コーダーですらないので今後はペクジュンもやりつつAtcoderのコンテストにも参加していこうと思います!ここまで読んでくださりありがとうございました🙇

次回はGithubのREADMEにペクジュンのお洒落なプロフィールを表示させる方法を紹介します❗️↓
https://zenn.dev/hirohiro_sys/articles/91f6b61f4ebc8c

Discussion