読者です 読者をやめる 読者になる 読者になる

261

IT系のカンファレンスに参加した話などを書いています

新人プログラマーのコードを直すついでにC++の復習を

気づけば1年C++書いていないので復習を兼ねて 新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|paizaオンラインハッカソンVol.1 を解いてみる。

その前に環境を構築。

g++とgoogle test

g++はapt-getでインストール。

gtestのインストール方法はここを参照 The Big Blob » Getting started with Google Test (GTest) on Ubuntu

サンプルを書いて実行 g++ -pthread*1 -lgtest_main -lgtest test.cpp

動作を確認できたので、環境構築終わり。 と思ったらMakeをかけたらビルドできない… main.o: 関数 __static_initialization_and_destruction_0' 内: /usr/include/c++/4.8/iostream:74:std::ios_base::Init::Init()' に対する定義されていない参照です /usr/include/c++/4.8/iostream:74: `std::ios_base::Init::~Init()' に対する定義されていない参照です collect2: error: ld returned 1 exit status

原因がよくわからない。。。

とりま、放置して問題解くか。 久々にvimで書いてて思うのはvimの環境作らないとだるくて死ねる。

コード補完が欲しい。。

で、コード書いて1回目のトライ ランクはE 酷い。。。 原因は問題文の読み間違い。

2つの異なる商品(値段は同じでも構わないが必ず二つ)

と書いてあるところの解釈が間違ってた。 あとは上記に2つの異なる商品ってあるけど、最少商品数は1だったりする。 設定金額を上回る値しかなかった場合は0?出力しない?とかちょいちょい仕様がわからんところが。 どうでもいいけど、気になるわ。。 あとは入力例、出力例が貧弱で単にそれをクリアする程度だとダメ。

というわけで、条件を読み直し再度トライ してる間に休みが終わった。

さて、どうしたものか。

*1:-lpthreadと書かないように