Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

paizaオンラインハッカソン Vol.5 を Scalaで解いてみた

最近残業のし過ぎで疲れすぎて、まったくもってScalaのコードを書けていなかったので
リハビリに

# Mission1

object Main extends App{
  val sc = new java.util.Scanner(System.in)
  sc.nextLine().toList.zipWithIndex.filter(n => n._2 % 2 == 0).foreach(s => print(s._1))
}

# Mission2

object Main extends App{
  val sc = new java.util.Scanner(System.in)
  val list = List.fill(sc.nextInt())(sc.nextInt())

  for(i <- 0 to 6) {
    println(sumList2(list, i))
  }

  // 再帰にしたいけど頭がまわらない
  def sumList2(list: List[Int], week: Int) = {
    var sum = 0
    for(i <- week to (list.size - 1) by 7) {
      sum = sum + list(i)
    }
    sum
  }
}

# Mission3

選べるわけ無いだろ!ということで

object Main extends App{
  val partner = Array("RENA", "MINAMI")
  println(partner(new scala.util.Random().nextInt(2)))
}

# Mission MINAMI

object Main extends App{
  val sc = new java.util.Scanner(System.in)

  // x: 行, y: 列
  val y, x = sc.nextInt()
  val list = List.fill(x, y)(sc.nextInt())

  // 転置行列
  val transposedList: List[List[Int]] = list.transpose.map(_.filter(_ != 2).padTo(x, 0).sorted).transpose

  transposedList.foreach(list => {
    println(list.mkString(" "))
  })

}