✍️ 코테 준비/Back Tracking 7

[백트래킹 / Kotlin] BOJ 14889 - 스타트와 링크

문제 풀이 언어 Kotlin 코드 import java.lang.Integer.min import java.util.* import kotlin.math.abs import kotlin.system.exitProcess lateinit var board: Array lateinit var visited: Array var min_value = Int.MAX_VALUE var n = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() board = Array(n) { Array(n) { nextInt() } } visited = Array(n) { 0 } search(0, 0) println(min_value) } fun search(index: Int,..

[백트래킹 / Kotlin] BOJ 1759 - 암호 만들기

문제 풀이 언어 Kotlin 코드 import java.util.* var l = 0 var c = 0 lateinit var array: Array lateinit var sortedArray: Array lateinit var visited: Array var stringBuilder = StringBuilder() fun main() = with(Scanner(System.`in`)) { l = nextInt() c = nextInt() array = Array(c) { next() } sortedArray = array.sortedArray() visited = Array(c) { 0 } dfs(0, 0) println(stringBuilder) } fun dfs(index: Int, depth:..

[백트래킹 / Kotlin] BOJ 1987 - 알파벳

문제 풀이 언어 Kotiln 코드 import java.lang.Integer.max import java.util.* var n = 0 var m = 0 var max_value = 0 val dx = listOf(-1, 1, 0, 0) val dy = listOf(0, 0, -1, 1) lateinit var board: Array lateinit var check: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() m = nextInt() board = Array(n) { Array(m) { "" } } check = Array(26) { 0 } for (i in 0 until n) { val s = next().chunked(1) for..

[백트래킹 / Kotlin] BOJ 14888 - 연산자 끼워넣기

문제 풀이 언어 kotlin 코드 import java.lang.Integer.max import java.lang.Integer.min import java.util.* var n = 0 var max_value = Int.MIN_VALUE var min_value = Int.MAX_VALUE lateinit var array: Array lateinit var operator: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() array = Array(n) { nextInt() } operator = Array(4) { nextInt() } calculate(array[0], 1) println(max_value) println(min_va..

[백트래킹 / Kotlin] BOJ 2580 - 스도쿠

문제 풀이 언어 Kotlin 코드 import java.util.* import kotlin.system.exitProcess lateinit var board: Array fun main() = with(Scanner(System.`in`)) { board = Array(9) { Array(9) { 0 } } // 주어진 배열을 입력받음 for (i in 0 until 9) { for (j in 0 until 9) { board[i][j] = nextInt() } } // (0, 0) 부터 시작 sudoku(0, 0) } fun check(row: Int, col: Int, value: Int): Boolean { // 1. 같은 행, 다른 열에 같은 값이 존재하는지 확인 for (i in 0 unti..

[백트래킹 / Kotlin] BOJ 9663 - N Queen

문제 풀이 언어 Kotlin 코드 import java.util.* import kotlin.math.abs lateinit var array: Array var n = 0 var cnt = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() array = Array(n) { 0 } nQueen(0) println(cnt) } fun nQueen(depth: Int) { // depth는 row if (depth == n) { println(depth) cnt++ return } for (i in 0 until n) { // i는 col array[depth] = i if (check(depth)) { nQueen(depth + 1) } } } fun ..

[백트래킹 / Kotlin] BOJ 15649 ~ 15652 - N과 M (1 ~ 4)

N과 M (1) 문제 풀이 언어 Kotlin 코드 import java.util.* lateinit var visit: Array lateinit var input: Array var n: Int = 0 var m: Int = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() m = nextInt() visit = Array(n + 1) { 0 } input = Array(n + 1) { 0 } dfs(0) } fun dfs(depth: Int) { if (depth == m) { for (i in 0 until m) { print("${input[i]} ") } println() return } for (i in 0 until n) { if (vis..