明日からテストなんですが、金曜日から出ていた熱がやっと引きました。
土曜日Topcoderなんで病み上がり記念にやってみたら、for内のiの宣言の時初期化うっかり忘れてたりと感覚が死んでました、恐い。記憶力ってか学習したことが体に染み付いていかないの恐いなー。
まぁ、いつもの如く無造作に250点問題選んでコーディング。250点問題だけじゃお話にならないと思いつつも、やっぱり技術とか知識が乏しいのでそこに留まっている。できるようになりたいなぁ。
#include <cmath> #include <iostream> #include <string> #include <sstream> using namespace std; class OptimalList { public: string optimize(string inst) { stringstream result; int x=0,y=0; for(int i=0;i<inst.length();i++) { if(inst[i]=='N') y++; //North is + if(inst[i]=='S') y--; //South is - if(inst[i]=='E') x++; //East is + if(inst[i]=='W') x--; //West is - } if(0<x)for(int i=0;i<abs(x);i++)result << "E"; if(0>y) for(int i=0;i<abs(y);i++)result << "S"; if(0<y)for(int i=0;i<abs(y);i++)result << "N"; if(0>x) for(int i=0;i<abs(x);i++)result << "W"; return result.str(); } };
System> kyuridenamida has submitted the 250-point problem for 214.65 points
英文読むのにちょっと時間掛かった(4分くらい)あとはコード書いてる途中にミス多すぎて動作しないみたいなことも。
頭悪いんだし無理せずに丁寧にコーディングしよう。
相変わらずのコードの汚さ(主に最後らへん)ですが、これは何かこれじゃないとNSWEの出力する順番的に通らなかったので、謎。
トップコーダーやってて思うけど250点問題って大体タイトルとreturn値で分かるような気がする。今度からそのスタイルでいこう。