ちょっとしたコードなら変数を定義せずにオブジェクトをそのまま使う
界隈のナウでヤングな皆さんは正月から元気ですのぅ。
喉が痛いのでキレートレモンを飲んでいます。。。(ヨボヨボ
SRM211 div2 (300)
問題
長方形の画面コンポーネント「Saveボタン」がある。
ボタンの左上と右下の座標が明らかになっている。
マウスクリックした座標を、行と列それぞれのvector
Saveボタンをアクティベートするクリックの番号(index)を、vector
自分の解答
#include <vector> class grafixClick { public: std::vector <int> checkSaveButton (std::vector <int> mouseRows, std::vector <int> mouseCols) { std::vector<int> result; if(mouseRows.size() != mouseCols.size()){ return result; } for(int i = 0; i < mouseRows.size(); ++i){ int r = mouseRows[i]; int c = mouseCols[i]; if((r < 20 || 39 < r) || (c < 50 || 99 < c)){ continue; } result.push_back(i); } return result; } };
高得点の人のコードを眺めた感想
条件と戻り値への追加を、逆の方法で書いてる人がほとんどでした。
自分はなぜ上のように書いたんだっけ・・・。書き直すと、こうですね。
if( 21 < r && r < 38 && 49 < c && c < 100){ result.push_back(i); }
また、わざわざ変数を作らず、mouseRows[i]、mouseCols[i]を直接使う人が多いようでした。
そういえば、問題文に明示された制約をチェックするコードは書く必要ないんですね(上でいうと、2つのvectorのサイズが同じかをチェックする処理のことです)。