목록바킹독 알고리즘/백트래킹 (3)
쥐수의 공부노트

정답 : let input = readLine()!.split(separator: " ").map{Int($0)!} let n = input[0] let m = input[1] let array = readLine()!.split(separator: " ").map{Int($0)!} var cnt = 0 func check ( num : Int, total : Int) { if num == n { if total == m { cnt += 1 } return } check(num: num+1, total: total) check(num: num+1, total: total+array[num]) } check(num: 0, total: 0) if m == 0 { cnt -= 1 } print(cnt) 마지막..

정답 : let n = Int(readLine()!)! var issue1 = Array(repeating: false, count: n) // column을 차지하고 있는지 var issue2 = Array(repeating: false, count: 2 * n - 1) // / 방향 대각선을 차지하고 있는지 var issue3 = Array(repeating: false, count: 2 * n - 1) // \ 방향 대각선을 차지하고 있는지 var cnt = 0 func check(num : Int) { // cur번째 row에 말을 배치할 예정임 if num == n { // N개를 놓는데 성공했다면 cnt += 1 return } for i in 0..