こんにちは。倉内です。
paizaではプログラミング言語、Webフレームワーク、データベースなどを学べる、さまざまな学習コンテンツを公開しています。
プログラミングの学習というと「勉強する」イメージが強い方も多いと思いますが、paizaは楽しみながらプログラミングを学んだり、RPGゲームを進めながら問題を解いたりといった体験も大切にしています。(「プログラミングエンタメ」というカテゴリでゲームなどを公開中です)
今回は、新しく追加されたレベルアップ問題集の「席順・席次のビジネスマナー問題セット」をメインに、楽しくプログラミング学習ができるコンテンツをご紹介します。
特にこの春社会人になったばかりの方は、ビジネスマナーも一緒に学べるかも!?な内容になっていますのでチェックしてみてください。
席順・席次のビジネスマナー問題セット
「レベルアップ問題集」は、さまざまな難易度・内容のプログラミングの練習問題をたくさん集めた問題集です。
学習チケットを消費することで、すべての問題のテストケースの入力値、一部問題の解答コード例・解説を閲覧できます。(有料会員の場合、制限なく閲覧可能です。学習チケットについて詳しくはこちら)
今回取り上げるのは「席順・席次のビジネスマナー問題セット」です。
その名の通り、席順・席次のマナーを勉強しながら、ソートなどを学べるプログラミング問題集です。現在、解答コード例のある言語は、Python3・Java・Rubyとなっています。
全12問、すべてDランク相当で易しめの問題なので、プログラミング初心者の方にもおすすめです。難易度を示すランクについてはこちらをご覧ください。
たとえば…「長方形4席入口垂直」の問題を見てみましょう。小規模な会議・ミーティングで定番の座席の形です。
問題
※マナーには諸説あります。形式にとらわれることなく心から相手を思いやる姿勢が大切です。
上の図のように、入口に対して垂直に長方形の机が配置されており、片側が2席となっています。
あなたの仕事は、一般的なビジネスマナーに則って、立場の高い人から順に席に案内することです。
案内する人の一覧が与えられるので、正しく案内したときの全員の着席状況を出力してください。
入力値
1行目から4行目で、立場の高い人から順に案内対象となる人を表す文字列が与えられます。
s_1
s_2
s_3
s_4
期待する出力
正しく案内したときの全体の着席状況を以下のフォーマットで出力してください。
t_i の配置は、図のイスの位置と対応させてください。
t_1 t_2
t_3 t_4
t_1, t_2, t_3, t_4をそれぞれs_1, s_2, s_3, s_4のいずれかに置き換えてください。
条件
すべてのテストケースにおいて、以下の条件を満たします。
・ s_1, s_2, s_3, s_4 は半角英数字
・ s_1, s_2, s_3, s_4 は1文字以上100文字以下の文字列
せっかくなので、ここで解いてみましょう。Python3で解くことにします。
まずは、標準入力で与えられる値を取得します。標準入力について詳しく知りたい方は、こちらのページも参考にしてみてください。
s_1 = input() s_2 = input() s_3 = input() s_4 = input()
今回は「立場の高い人から順に案内」という前提があるため、s_1の人物がもっとも立場が上の人、s_4の人物がもっとも立場が下の人となります。
ビジネスマナーでは、入り口から遠いところから偉い人に座ってもらいます。つまり、案内した順番に「◯番目」とすると、
3番目 1番目
4番目 2番目
と座ってもらえればOKです。ということは…
print(s_3, end="") print(" "+ s_1) print(s_4, end="") print(" "+ s_2)
このように出力させれば正解になります!
でもなんとなく野暮ったいですよね…。以下のようにフォーマット文字列(f文字列)を使うと、もっとスマートに書くことができます。
print(f"{s_3} {s_1}") print(f"{s_4} {s_2}")
(参考)Pythonのf文字列(フォーマット済み文字列リテラル)の使い方 | note.nkmk.me
簡単だった!という方は、6席に増えた「長方形6席入口平行」にもぜひ挑戦してみてください。
ちなみに会議だけでなく、「タクシー」や「社用車」の位置を決める問題もあります。社会人でもどこに目上の人に乗ってもらうとよいか、ちょっと迷うのではないでしょうか?
ただプログラミング問題を解くだけでなく、このようにユニークな問題だと挑戦するのも楽しくなると思います。
この問題集を使って、ぜひプログラミングはもちろん、席次のマナーも身につけてみてください。
その他のプログラミング問題集
「レベルアップ問題集」では他にも多数問題集を公開していますが、その中でもちょっと変わったもの、特に楽しんで取り組めるものをピックアップ!
自己紹介問題セット
難易度:★
問題数:1問
解答例のある言語:Java・C++
プログラミングで自己紹介をしたくなることってありますよね…!
そんなときにこの問題を解いて練習しておけばスムーズに自己紹介の文章を出力できます。
STEINS;GATE 問題セット
難易度:★★★
問題数:19問
解答例のある言語:Python3・Java・C#・Ruby・PHP・JavaScript・C・C++
「STEINS;GATE 問題セット」は、paizaがSTEINS;GATEとコラボしたプログラミングゲームで出題される問題(A~Dランク相当)です。
問題集では問題のみ公開していますが、オリジナルのシナリオとともにゲームを進めながら問題を解いてみるのもおすすめです。
paizaの森練習問題コンテスト過去問題
難易度:★★
問題数:5~7問程度
解答例のある言語:Java・Python3 など
paizaラーニングの有料会員向けコミュニティ「paizaの森」では、定期的にプログラミング問題を解いて競い合うコンテストを開催しています。エンジニアによる解説もおこなっています。
現在、過去問題は9まで公開中。C~Dランク相当の問題が多いですが、Bランク相当の問題もあります。プログラミングスキルをレベルアップしたい方にもおすすめです。
スキルチェックで腕試し
ある程度練習問題が解けるようになったら、スキルチェックで制限時間内に問題が解けるか腕試しをしてみましょう!
スキルチェックとは、難易度によってS・A・B・C・Dランクに分かれているプログラミング問題を制限時間内に解き、結果によってS・A・B・C・D・Eの6段階のランクを取得できるサービスです。
取得したランクは、paizaが運営する就活・転職サービスでの求人応募の際に利用*1できます。
ランクのレベル感は以下の通りです。言語は現在、Java、PHP、Ruby、Python、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift、Kotlinに対応しています。
問題は多数ありますので、上位ランクの問題にも気軽にチャレンジしてみてください。
楽しく学べる「プログラミングエンタメ」もおすすめ
paizaでは、学習講座や問題集の他に、プログラミングをゲーム感覚で学べるコンテンツも公開しています。ゲームコンテンツ一覧はこちら
たとえば、最新作『異能な僕らと異常な世界』やファンタジーな世界観の『エンジニア騎士とクエリの魔女』など楽しみながらプログラミングを学べます。
D~Sランクまでさまざまなタイプの問題を解くことができますので、楽しいだけではなく、しっかり実力アップすることが可能です。
以下の記事では各ゲームコンテンツの紹介と当ブログで解答・解説を掲載した記事をまとめて紹介しています。
まとめ
学習コンテンツの中でも、特にユニークなものや楽しみながら進められるものをピックアップしてご紹介しました。
プログラミングの習得にはインプット以上にアウトプットが大事になってきます。たくさん問題を解いて「コードを書く力」を養っていただければと思います。
「勉強にあまり気が乗らないなぁ」というときは、今回紹介したコンテンツを使って少し気分転換をしてみてください!
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら
*1:paizaはITエンジニア専門の就活・転職サービスです。公開している求人には、企業が求めるレベルに応じて「応募可能ランク」が設定されています。書類や言葉ではなく、「問題を解いて獲得したランク」は、プログラミングスキルや経験の証明にもなります。