728x90
https://school.programmers.co.kr/learn/courses/30/lessons/81301
Code
class Solution {
fun solution(s: String): Int {
val numList = listOf(
Pair("zero", "0"),
Pair("one", "1"),
Pair("two", "2"),
Pair("three", "3"),
Pair("four", "4"),
Pair("five", "5"),
Pair("six", "6"),
Pair("seven", "7"),
Pair("eight", "8"),
Pair("nine", "9")
)
var str: StringBuilder = StringBuilder()
str.append(s)
var answer = 0
while (str.length > 0){
var temp = str[0].toString()
var index = 1
numList.forEach {
if (str.startsWith(it.first)){
temp = it.second
index = it.first.length
}
}
answer = answer * 10 + temp.toInt()
str.delete(0, index)
}
return answer
}
fun solution(s: String): Int = s
.replace("zero", "0")
.replace("one", "1")
.replace("two", "2")
.replace("three", "3")
.replace("four", "4")
.replace("five", "5")
.replace("six", "6")
.replace("seven", "7")
.replace("eight", "8")
.replace("nine", "9")
.toInt()
}
영어로 되어있는 숫자를 숫자로 바꿔주는 문제였다.
처음 생각한 아이디어는 영어단어 리스트를 만들고, 대치되는 숫자를 매핑해뒀다.
그 후 입력값을 StringBuilder로 만들고 해당 값을 앞에서부터 잘라내며 변환시키는 알고리즘을 작성했다.
다른 사람의 풀이를 보니까 ㅏ...
그냥 replace로 되는구나...
허탈하지만 잘 배웠습니다.
728x90