powerset

fun Collection.powerset(): Set = powerset(this, setOf(setOf())) private tailrec fun powerset(left: Collection, acc: Set): Set = when { left.isEmpty() -> acc else ->powerset(left.drop(1), acc + acc.map { it + left.first() }) } fun main() { val list1 = listOf(1,2,3,4,5,6,7,8) val list2 = listOf(1,2,3) val a = list1.powerset() println(a) println(a.size) val b = list2.powerset() println(b) } github...

ํ˜ธ์ถœ ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ์ถœ๋ ฅ

ํ™•์žฅํ•จ์ˆ˜ info๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ ํด๋ž˜์Šค๋ช…๊ณผ ๋ฉ”์†Œ๋“œ๋ช… ์ถœ๋ ฅ class PopcornPopper{ fun on() { info() } } fun T.info(): T { val res = this Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(res)}") } return this } fun T.info(msg: () -> Any): T { Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(msg())}") } return this } fun StackTraceElement.generateTag() = className.subst..

[๋””์ž์ธ ํŒจํ„ด] ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด

์ •์˜ ํ•œ ํด๋ž˜์Šค์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํฌ๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณ€ํ™˜. ์ธํ„ฐํŽ˜์ด์Šค ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ๊ฐ™์ด ์“ธ ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ฐ„๋‹จ ์˜ˆ์ œ์ฝ”๋“œ import kotlin.test.* import kotlin.time.* interface Duck { fun quack() fun fly() } class MallardDuck : Duck { override fun quack() { println("Quack") } override fun fly() { println("I'm flying") } } interface Turkey { fun gobble() fun fly() } class WildTurkey : Turkey { override fun gobble() { printl..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฌธ์ž์—ด ํƒ์ƒ‰์šฉ ์ž๋ฃŒ๊ตฌ์กฐ Trie

๊ธฐ๋ณธํ˜• class Trie { data class TrieNode(var isEndOfWord : Boolean, val children : MutableMap) val root = TrieNode(false, mutableMapOf()) fun insert(word : String) { var currentNode = root word.forEach{ char -> val child = currentNode.children[char] ?: TrieNode(false, mutableMapOf()) currentNode.children[char] = child currentNode = child } currentNode.isEndOfWord = true } fun search(word : String) :..