[백준] 단어 나누기 (1251)
문제 설명
입력 및 출력
» 입력
첫째 줄에 영어 소문자로 된 단어가 주어진다. 길이는 3 이상 50 이하이다.
» 출력
첫째 줄에 구하고자 하는 단어를 출력하면 된다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
mobitel | bometil |
문제 풀이 (KOLTIN)
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
val str = readLine()
val list = mutableListOf<String>()
for (i in 1 .. str.length - 2) {
for (j in i + 1 .. str.length - 1) {
list.add(
str.substring(0 until i).reversed() +
str.substring(i until j).reversed() +
str.substring(j).reversed()
)
}
}
println(list.minOf { it })
}
문제 풀이 (SWIFT)
let str = Array(readLine()!)
let len = str.count
var ans = "-"
for i in 0..<len - 2 {
for j in i + 1..<len - 1 {
let first = Array(str[0...i].reversed())
let second = Array(str[i + 1...j].reversed())
let third = Array(str[j + 1..<len].reversed())
let comb = (first + second + third)
.map { String($0) }
.joined()
if ans == "-" || ans > comb {
ans = comb
}
}
}
print(ans)