paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

paizaオンラインハッカソンVol.2開催(2014/4/16-2014/5/14)

■どなたか女子大生インターンペアプロをしてあげてください!

昨年12月の開催し好評だったオンラインハッカソンの第二弾を開催します!
「あなたの部署に配属された女子大生インターンの木野さん。インターンを締めくくる開発発表のプログラミングで苦戦しているようです。ペアプロで効率の良いコードを指導してあげましょう。」という設定で、一つのプログラミング課題に対して参加者全員でより良いコードを作っていくオンラインハッカソン「paizaオンラインハッカソン(略してPOH![ポー!])Vol.2」をpaizaで4/16(水)11時より開催します。前回同様paizaへの会員登録をしなくても参加が可能です。

■オンラインハッカソン概要

開催期間:2014年4月16日(水)11:00~2014年5月14日(水)23:59
参加資格:だれでも何回でも参加可能
プレゼント:参加者の中から抽選で3名様にシャーク、レッドブル、ロックスターのいずれか1ケースをプレゼント!!
対応言語JavaPHPRubyPythonPerl、C、C++C#

問題詳細
インターンを締めくくる開発発表として、あなたの会社の得意先であるcodomo社から受注したスマートフォン向けの新OS Paizen(パイゼン)を開発中の木野さんは、今、ホーム画面へのウィジェット配置機能の実装を考えています。 現在のホーム画面に対し、指定されたウィジェットが配置可能な場所をすべて求める機能を実装することにしました。

ホーム画面は大きさ縦H、横W の長方形で、1 x 1 の正方形の区画に区切られています。また区画の数はHW 個であり、画面左上の区画を(1, 1)、右下の区画を(W, H) で表します。 ウィジェットは縦S、横T の長方形で、同様に1 x 1 の正方形のサイズ(ホーム画面と1区画と同サイズ)で区切られています。ウィジェット左上のエリアを(1, 1)、右下のエリアを(T, S) で表します。

ウィジェットの配置とは、ホーム画面に対して、他の既に配置されているウィジェットに重ならないように、かつ、画面からはみ出ないようにウィジェットを置くことを言います。 このとき、ウィジェット回転させたり、斜めにしたりして配置することはできません。また、ホーム画面の区画に対して、 ウィジェットがずれないようにぴったりとはまる形で配置する必要があります。(半区画ずらすような事は不可)


ウィジェットを配置したとき、そのウィジェット上のエリア(1, 1) が重なっているホーム画面上の区画(X, Y) をウィジェットの 配置可能座標 と呼ぶことにします。配置の仕方から、X, Y はともに整数で、1 ≦ X ≦ W, 1 ≦ Y ≦ H であることがわかります。

さてウィジェットの配置機能実装の第一歩として、現在のホーム画面に対し、指定されたウィジェットが配置可能な場所をすべて求める機能を実装することにしました。そこでホーム画面の現在のウィジェット配置状態と複数ウィジェットが与えられるので、それぞれのウィジェットに対し 配置可能座標 (定義は問題文中段)の数をすべて求めてください。
※この物語はフィクションであり、実在の人物・団体とは一切関係ありません

入力される値の詳細などはこちらをご覧下さい

■気軽に参加できるオンラインハッカソン

前回に引き続き今回も気軽に参加できるハッカソンとして企画をしました。ハッカソンはハードルが高くてなかなか参加できない、地方なのでなかなか参加できないなど、興味はあっても参加迄に至らないというかたでも気軽に参加できるオンラインイベントです。実行環境は有るにこした事は有りませんが、ブラウザだけでも参加できるように、オンラインエディタ+提出前確認機能も用意されています。

提出したコードについても、その場で結果が出るオンラインジャッジとなっています。ジャッジは複数のテストケースによって行われ、バグの有無と実行速度によって判断されます。

他の人の書いたコードが気になると思いますが、こちらも随時上位コードについて公開をしていきます。
※上位のコードしか発表しないので、書き殴ったコードだからといって遠慮せずに試してみてください。

前回と同様に今回も問題内容の公開もしていますし、ブログ等で解答コードを書いていただいてもよい、という形を取っています。

まず最初は自分の力でチャレンジしてみて、そのあとは人のコードを研究してみるもよし、そこからさらに効率の良いコードに改修してみるもよしです。是非チャレンジしてみてください!


オンラインハッカソン「paizaオンラインハッカソン(略してPOH![ポー!])Vol.2 女子大生とペアプロするだけの簡単なお仕事です。」|http://paiza.jp/poh/paizen



プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編