โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Implementation

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 124 ๋‚˜๋ผ์˜ ์ˆซ์ž

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž programmers.co.kr ํ’€์ด ์–ธ์–ด Python ํ’€์ด ๋ฐฉ๋ฒ• ์šฐ์„  ์ง„๋ฒ• ๋ณ€ํ™˜ ๋ฌธ์ œ์ด๋‹ค. ์ข€ ํŠน์ดํ•˜๊ธด ํ•œ๋ฐ 3๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ 3์ง„๋ฒ•์„ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ 10์ง„์ˆ˜ 3์„ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ 10์ด ์•„๋‹ˆ๋ผ 4๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜์„ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ผ๊นŒ? ์šฐ์„  ๋ณ€ํ™˜ ์ „๊ณผ ๋ณ€ํ™˜ ํ›„๋ฅผ ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด๋ดค๋‹ค. 10์ง„๋ฒ• 3์ง„๋ฒ• 124 ๋‚˜๋ผ 1 1 1 2 2 2 3 10 4 4 11 11 5 12 12 6 20 14 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ์—๋งŒ ํŠน์ดํ•œ ๊ฐ’์„ ๊ฐ–๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์—๋„ ๊ทœ์น™์ด ์žˆ๋‹ค. ๋งจ ์•ž ์ˆซ์ž์—์„œ -1 ์„ ํ•˜๊ณ  ๋’ค์˜ 0์„ 4๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค๋Š” ์ . ์ฆ‰, 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ ๋ชซ์—์„œ -1์„ ํ•ด์ค€๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ฝ”๋“œ def solu..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Binary Search

[LeetCode] 167. Two Sum II - Input Array Is Sorted

์ž…๋ ฅ ์˜ˆ์‹œ ํ’€์ด ์–ธ์–ด Python ํ’€์ด ๋ฐฉ๋ฒ• ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ target์„ ๋งŒ์กฑํ•˜๋Š” ๋‘ ์›์†Œ์˜ index๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด์—ˆ๊ธฐ์— BST ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ฝ”๋“œ class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: start = 0 end = len(numbers) - 1 while start target: end -= 1 elif mid < target: start += 1 else: return [start + 1, end + 1] ๊ฒฐ๊ณผ

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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,..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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:..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Math

[์ˆ˜ํ•™ / Kotlin] BOJ 11050 ~ 11051 ์ดํ•ญ ๊ณ„์ˆ˜ (1 ~ 2)

์ดํ•ญ ๊ณ„์ˆ˜ 1 ๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotiln ์ฝ”๋“œ import java.util.* lateinit var array: Array var n = 0 var k = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() k = nextInt() // ์žฌ๊ท€ ๋Œ€์‹  DP๋กœ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ˜„ array = Array(n + 1) { 1 } // ํŒฉํ† ๋ฆฌ์–ผ ๊ณ„์‚ฐ for (i in 2..n) { array[i] = array[i - 1] * i } // ์กฐํ•ฉ ๊ณต์‹ ์ ์šฉ // nCr = n! / (n-r)! * r! println(array[n] / (array[n - k] * array[k])) } ํ’€์ด ๋ฐฉ๋ฒ• ๊ณ ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด ์กฐํ•ฉ ๊ณต์‹ ์„ ์ ์šฉํ•˜๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Implementation

[๊ตฌํ˜„ / Kotlin] BOJ 13459 - ๊ตฌ์Šฌ ํƒˆ์ถœ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotlin ์ฝ”๋“œ import java.util.* data class Point( val x: Int, val y: Int ) data class Points( val red_x: Int, val red_y: Int, val blue_x: Int, val blue_y: Int, val depth: Int ) data class Infos( val x: Int, val y: Int, val cnt: Int ) lateinit var array: Array val dx = arrayOf(1, -1, 0, 0) val dy = arrayOf(0, 0, 1, -1) var n = 0 var m = 0 var red = Point(0, 0) var blue = Point(0, 0) fun mai..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / 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 ..

kodo_o
'โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก