본문 바로가기

전체 글

유효한 괄호 문자열 확인 fun isValidParentheses(s: String): Boolean { val stack = ArrayDeque() for (char in s) { when (char) { '(', '[', '{' -> stack.addLast(char) ')' -> if (stack.isEmpty() || stack.removeLast() != '(') return false ']' -> if (stack.isEmpty() || stack.removeLast() != '[') return false '}' -> if (stack.isEmpty() || stack.removeLast() != '{') return false } } return stack.isEmpty() } fun main() { println.. 더보기
최빈 단어 찾기 fun mostFrequentWord(s: String): Pair? { val words = s.split(' ') val frequencyMap = words.groupingBy { it }.eachCount() return frequencyMap.maxByOrNull { it.value } } fun main() { val (word, frequency) = mostFrequentWord("this is a sample program and it is a sample") ?: Pair("", 0) println("$word: $frequency") // "sample: 2" } 더보기
공백으로 단어 뒤집기 fun reverseWords(s: String): String { return s.split(' ').joinToString(" ") { it.reversed() } } fun main() { println(reverseWords("Hello World")) // "olleH dlroW" } 더보기
문자열의 모든 순열찾기 fun getPermutations(s: String): List { if (s.length 더보기
문자열 압축 fun compressString(s: String): String { if (s.isEmpty()) return "" val compressed = StringBuilder() var count = 1 for (i in 1 until s.length) { if (s[i] == s[i - 1]) { count++ } else { compressed.append(s[i - 1]).append(count) count = 1 } } compressed.append(s.last()).append(count) return compressed.toString() } fun main() { println(compressString("aaabbbbccdddda")) // "a3b4c2d4a1" } 더보기
가장 긴 공통 접두사 찾기 fun longestCommonPrefix(strs: List): String { if (strs.isEmpty()) return "" val prefix = StringBuilder() strs.reduce { acc, s -> acc.commonPrefixWith(s) }.forEach { prefix.append(it) } return prefix.toString() } fun main() { println(longestCommonPrefix(listOf("flower", "flow", "flight"))) // "fl" } 더보기
회문확인 fun isPalindrome(s: String): Boolean { return s == s.reversed() } fun main() { println(isPalindrome("level")) // true } 더보기
애너그램 확인 fun isAnagram(s1: String, s2: String): Boolean { return s1.toList().sorted() == s2.toList().sorted() } fun main() { println(isAnagram("listen", "silent")) // true } 더보기