Jumping Frogs 퍼즐
요즘 scala 언어를 배우고 있는 중입니다. Functional language가 어떤건지 관심이 있던 중 기회가 닿아 배우게 되었는데 상당히 재미있습니다. Scala는 JVM상에서 돌아가는 언어라서 java의 여러 라이브러리를 사용할 수 있는 장점이 있는데 scala에서 JavaFX를 사용하기 위한 ScalaFx의 예제로 Jumping Frogs 퍼즐이 있습니다. 소스는 여기 에서 살펴볼 수 있고 퍼즐은 여기 에서 풀어볼 수 있습니다. 며칠 전 풀어보다 잘 안풀려서 scala에서 한번 풀어보자고 프로그램을 짜기 시작했는데 아직 초보라 그런지 며칠간 고민하다 겨우 작성할 수 있었답니다. 잘 작성한 소스는 아니지만 Functional Language와 Scala의 느낌이 어느 정도 살아있는것 같아 올려놓았습니다 . 결과를 보고 한번 풀어보니 이렇게 간단한걸 왜 못 풀었나 싶더군요. object frogs { type State = List[Int] type Sets = List[State] type History = List[State] val setSize = 7 //> setSize : Int = 7 def frogs(n:Int, code:Int) = ((0 until n) map (_ => code)).toList //> frogs: (n: Int, code: Int)List[Int] val leftFrogs = frogs(setSize/2, 1) //> leftFrogs : List[Int] = List(1, 1, 1) val rightFrogs = frogs(setSize/2, 2) //> rightFrogs : List[Int] = List(2, 2, 2) val set = leftFrogs ++ List(0) ++ r...