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

個人的自由ノート

ふと自分が気になった事を書いてます

プログラミングの問題掲載サイト CodingBat等々

ネットにあるプログラミング問題掲載サイト、全部が全部悪いとはいいませんが、相手に解かせる気がないものばかりであまりしてこなかったのですが、先ほどCodingBatというウェブサイトがあるのを知り、ここで一つ問題を解いてみました。

Question 1

The parameter weekday is true if it is a weekday, and the parameter vacation is true if we are on vacation. We sleep in if it is not a weekday or we’re on vacation. Return true if we sleep in.

sleepIn(false, false) → true sleepIn(true, false) → false sleepIn(false, true) → true

public boolean sleepIn(boolean weekday, boolean vacation) {
  if(weekday == false && vacation == false)
    return true;
  else if(weekday == true && vacation == false)
    return false;
  else if(weekday == false && vacation == true)
    return true;
  else
    return true;
}

英語がネックですが、問題自体は無理のないものだと思います。文章を読んで考えるような感じですかね。他にもAizu Online JudgeやHacker Rankがありました。無理なく出来るもので。Paiza、少し難しいのもありましたね。線形計画法が出来ないと駄目なのかな。

#include <stdio.h>

int main(void){
  int no1, no2;
  scanf("%d%d", &no1, &no2);
  int num[no1];
  int mod[no1];
  for(int i = 0; i < no1; i++) {
    scanf("%d", &num[i]);
  }
  for(int i = 0; i < no1; i++) {
    mod[i] = no2 % num[i];
  }
  int max = num[0];
  int min = mod[0];
  int n = 0;
  for(int i = 1; i < no1; i++) {
    if(max >= num[i] && min >= mod[i]) {
      max = num[i];
      min = mod[i];
      n = i + 1;
    }
  }
  printf("%d\n", n);
  return 0;
}

まあ、これを作ったわけですが、結果としては失敗ですし、もう少し簡単な問題からやればいいかもしれないですね。様子見でちょっとやってみたんですが。まあ、また他にもあるか見てみます。TopCoderはまだまだ…。