재귀 공부하는데는 N과 M만한게 없다.
https://www.acmicpc.net/problem/15649
import scala.io.StdIn
import scala.util.control.Breaks._
import scala.collection.mutable.ArrayDeque
object Constant{
val VERBOSE = false
}
object Global{
var N:Int = 0
var R:Int = 0
var visited:Array[Boolean] = new Array[Boolean](Global.N + 1)
}
object Main{
def main(args:Array[String]):Unit = {
val cmd = StdIn.readLine().split(" ")
Global.N = cmd(0).toInt
Global.R = cmd(1).toInt
var dq = ArrayDeque[Int]()
Global.visited = new Array[Boolean](Global.N + 1)
solve(dq, 0)
}
def solve(dq:ArrayDeque[Int], depth:Int):Unit = {
if(depth == Global.R){
println(dq.mkString(" "))
}
for(tmp <- 1 to Global.N) {
breakable{
if(Global.visited(tmp))
break()
dq.append(tmp)
Global.visited(tmp) = true
solve(dq, depth+1)
dq.removeLast()
Global.visited(tmp) = false
}
}
}
}
N이랑 M 사이즈 8 이하의 정수밖에 안되는데...
메모리점유랑 속도차가 이게 말이 돼?
너무 안좋은데 Scala..?