2012年12月14日金曜日

12/12/13(まねたほうがいい)

○codler(AOJ)

50.AppleAndPeach

難易度1


appleとpeachを文字列の中で見つけたらそれを交換しろという問題。
たぶんはじめての文字変換の問題でした。

今回から、自分が書いたやつも載せようと思います。
今は恥ずかしいレベルだけど、一年後にレベルアップを感じられたらと切に願う。


int main(void){
 char str1[1000];
 char str2[1000];
 bool bchange = false;
 char apple[6] = "apple";
 char peach[6] = "peach";
 cin.getline(str1,sizeof(str1));  // cinだとスペースまで記録されない
 for(int i = 0;i < 1000;++i){
  bchange = false;
  if(str1[i] == 'a')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i < 1000)
    {
     //違う
     if(str1[j + i] != apple[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'p';
      str2[i++] = 'e';
      str2[i++] = 'a';
      str2[i++] = 'c';
      str2[i] = 'h';
      bchange = true;
     }
    }
   }
  }
  else if(str1[i] == 'p')
  {
   for(int j = 0;j < 5;++j){
    if(j  + i< 1000)
    {
     //違う
     if(str1[j + i] != peach[j])
     {
      break;
     }
     //lastまでいった
     if(j == 4)
     {
      str2[i++] = 'a';
      str2[i++] = 'p';
      str2[i++] = 'p';
      str2[i++] = 'l';
      str2[i++] = 'e';
      bchange = true;
     }
    }
   }
  }
 
  if(!bchange)str2[i] = str1[i];
 }
 cout << str2 << endl;
 return 0;
}


ごらんのとおりそのまんまです。

そのまんまのやつしか書こうとしてません。
最初に思いついた解答をそのまま書いて、どうやったら早くできるとか、
短くできるのかは考えてないです。

時間がもったいないから早くやるという風に考えてしまうのが問題です。


アルゴリズムの本にうまい人のプログラムを真似ろと書いてましたが、
答えがあってたらそのまんまという風にしないで、レベルが高いと思った人のを真似したいと思いました。

そうしないといつまでたっても、このままで終わってしまう。


今まで、誰かのを真似しろとか言われたことがなかったので、
自分で書いて思うように動いたらそのまんま、という感じでしたが、
これからは、人のいいところを盗んでものにしたいと思います。


○アンドロイドゲーム


魚の敵キャラの絵を書く。


○基本情報(490,+40)


記憶装置、レコードとかメンドクサイところをやる。
説明の絵図とかを見ないとわかんないっす。

なんか説明の載っている本とかが必要かもしれない。























0 件のコメント:

コメントを投稿