こんにちは。倉内です。
プログラミングの勉強方法はさまざまですが、ある程度言語の基本を押さえたあとは、問題をたくさん解いてコードを書くことに慣れるのもよい方法かと思います。
そこで今回は、環境構築不要でブラウザ上でコードを書いて実行までできる、無料のプログラミング練習問題集「レベルアップ問題集」をご紹介します!
レベルアップ問題集では、ループや条件文、配列といった基本文法をおさらいできる問題から、ソート、線形探索、などアルゴリズムに関する問題まで多様な練習問題を公開しています。
すべての問題の入力テストケースおよび一部問題では解答コード例・解説もご用意しています。ぜひご活用ください!
レベルアップ問題集の使い方
1. チャレンジする言語を選択する
paizaへの会員登録(無料)して*1、ログイン後レベルアップ問題集のトップページから問題を解く言語を選択してください。
20以上のプログラミング言語から選択可能です。
すでにある程度使い慣れた言語はもちろん、勉強し始めたばかりの言語などご自分の目的に合わせて選ぶとよいでしょう。
2. 問題セットまたは問題メニューを選択する
問題セットは一定の共通点でまとめられた問題集、問題メニューは上から順番に解いていくとレベルアップできるようにまとめられた問題集です。
内容については以降で紹介しますので、どの問題集をやろうか迷ったときは参考にしてみてください。
なお、選択した言語によって「全問解答コード例あり」「一部解答コード例あり」が表示されます。(解答コード例がない場合は表示されません)
3. 問題を選択する
解きたい問題を選択します。特に理由がなければ、上から順にSTEP1の問題を解くとよいでしょう。
ここでは「条件分岐メニュー」の「0が含まれていないか判定」のSTEP1を選択してみることにします。
4. 問題文を読んで理解する
問題文の他に入力値、期待される出力、条件などが記載されています。時間制限はないのでじっくり読んで考えてみてください。
なお、上部に表記されているとおり、レベルアップ問題集はSNSや友人間で問題内容やコードを共有していただいて構いません。勉強会などにもご利用いただけます。
5. 解答コードを書く
画面を下のほうにスクロールするとコードエディタがあります。
ここに解答コードを記述してください。提出前に動作確認もできます。不正解になってしまった場合は、もう一度条件などを確認し、コードを見直してみましょう。
境界値や最小・最大値を入力値にしてテストを試したいとき、paiza.IOというオンライン実行環境を使うのもおすすめです。
6. 提出して結果(解答例・解説)を見る
「コードを提出する」ボタンを押すと、テストケース実行画面に遷移し、採点結果が表示されます。
この画面でテストケースで与えられる入力値、解答コード例・解説を見ることができます。学習チケットの消費が必要になりますので、毎日のログインや後述のスキルチェック問題の解答で集めるとよいでしょう。
なお、有料会員はチケットは不要ですべて参照可能です。
問題集の内容紹介
内容をジャンル別でご紹介します。問題集および解答コード例・解説は順次追加しているため、以下の情報は2021年12月1日時点のものです。
最新情報はpaizaラーニングのTwitterアカウントもご確認ください。
標準入力・出力を理解したい
プログラミング問題を解く際には、与えられた値を受け取ったり、指定の形式で出力したりといったことを求められることが多くあります。
それらのさまざまなパターンを書けるようになるための問題集が「標準入力メニュー」「標準出力メニュー」です。はじめてこういった形式の問題を解くという方は、まずはこの問題集で入出力の書き方に慣れるとよいでしょう。
解答例・解説のある言語:Ruby、C++、COBOL、Python3、Java
標準入力には「標準入力サンプル問題セット」もあります。合わせてご活用ください。
言語の基本文法を固めたい
ループや条件分岐、配列、文字列処理、クラス・構造体など、プログラミング初学者が押さえておきたい基本的な文法の問題を集めました。一部を紹介します。
アルゴリズムの問題を解きたい
まずは導入におすすめなのが「スタック・キューメニュー」「線形探索メニュー」です。これからアルゴリズムに本格的に取り組みたい方は押さえておくとよいでしょう。
つづいて、もう少し本格的なアルゴリズムの問題を解いておたい方におすすめの「素朴なソートアルゴリズムメニュー」「クエリメニュー」もご用意しています。
さらに中・上級者には「ユークリッドの互除法メニュー」「DPメニュー」「グリッド版ダイクストラ問題セット」もあります。ぜひ挑戦してみてください!
スキルチェック問題の練習をしたい
paizaには時間制限ありで問題に取り組み、結果によってS・A・B・C・D・Eのランクが付与される「スキルチェック」というサービスがあります。
ここまで紹介した問題もS~D相当に難易度が分かれており、スキルチェックでもほぼ同等の問題が出題されます。paizaの就職・転職サービスの求人には、通過ランクが設定されておりスキルチェックでそのランク以上を獲得することで応募が可能になります。
「スキルチェック過去問セット」や「スキルチェック見本問題セット」で練習してから取り組むとよいでしょう。
スキルチェックで上のランクに挑戦したい
「興味のある求人の通過ランクになかなか届かない……」という方は、レベルアップメニューを活用してみてください。
たとえば、現在DランクでCランクを取得したいと考えている場合、「Cランクレベルアップメニュー」ではDランク相当の練習問題を複数解いて、Cランクの問題を解くための力をつけられるようになっています。
解答例・解説のある言語:Python3、Ruby、Java、C++、JavaScript、COBOL、PHP
レベルアップメニューは、Cランク・Bランク・Aランクのものをご用意しています。S・Aの高ランクを目指す方には「リアルイベント問題セット」もおすすめです。
また、就職・転職目的でなくてもプログラミング学習の成果を時間制限ありのスキルチェックで測ってみたいという方もいると思います。その場合もこちらを使ってさらに実力アップをしてから挑戦してみてください。
STEINS;GATEコラボ問題を解きたい
paizaとSTEINS;GATEがコラボした「電脳言語のオルダーソンループ」で出題される問題をこちらにまとめています。
問題を解くことでストーリーが進んでいくので興味がある方は、ぜひゲームをプレイしてみてください。
解答例と解説は、Python3、Ruby、Java、C#、PHP、C++、JavaScript、COBOLと豊富にご用意しています。ご自分の得意な言語はもちろん、これから学んでみたい言語でも挑戦するとよいでしょう。
まとめ
無料でプログラミング問題をたくさん解ける「レベルアップ問題集」を紹介してきました。
基本文法を学んだあとどのように勉強を進めていけばいいか、初心者から脱して中級者になるにはどうしたらいいか、迷っている方はぜひご活用いただければと思います。
またpaizaラーニングでは、Webアプリケーション開発を学べる講座やセキュリティ、AI・機械学習を学べる講座も公開しています。目的に合わせてご利用ください。
*1:paizaは転職・就職サービスも運営しているため、会員登録時にそれらに関する質問項目があります。