Simple&Natural
2020 카카오 공채 코딩테스트 - 문자열 압축 본문
728x90
푼지 좀 지난 문제다보니 자세히 어떻게 풀었는지 가물가물한데
문자열을 1개, 2개, 3개 단위로 늘려가며 압축해본 후 가장 짧은 값을 리턴하면 된다.
참고로 소스는 절대 깔끔한 편이 아니다.
더 좋은 다른 코드가 많으니 참고 바람.
사용언어: Kotlin
소스코드:
fun solution(s: String): Int {
var answer = 0
var answerStr = ""
var count = 0
var tmpStr = ""
var tmpCount = 0
while(count <= s.length/2-1) {
count++
tmpCount = 1
for (i in 1 until s.length/count) {
if( s.substring(count*(i-1), count*(i)) == s.substring(count*(i), count*(i+1)) ) {
tmpStr = s.substring(count*i, count*(i+1))
tmpCount++
if(i == s.length/count-1) {
answerStr = answerStr.plus(tmpCount.toString() + tmpStr).plus(s.substring(count*(i+1), s.length))
}
} else {
tmpStr = s.substring(count*(i-1), count*(i))
if(tmpCount > 1) {
answerStr = answerStr.plus(tmpCount.toString() + tmpStr)
if(i == s.length/count-1) {
answerStr = answerStr.plus(s.substring(count*(i), s.length))
}
} else {
if(i == s.length/count-1) {
tmpStr = tmpStr.plus(s.substring(count*(i), s.length))
}
answerStr = answerStr.plus(tmpStr)
}
tmpCount = 1
}
}
if(count==1) {
answer = answerStr.length
} else {
if(answerStr.length < answer) {
answer = answerStr.length
}
}
answerStr = ""
}
if(s.length ==1)
return 1
return answer
}
728x90
'코딩테스트 풀이 > 카카오' 카테고리의 다른 글
2019 카카오 개발자 겨울 인턴십 코딩테스트 - 불량 사용자 (0) | 2020.09.14 |
---|---|
2020 카카오 공채 코딩테스트 - 자물쇠와 열쇠 (0) | 2020.08.26 |
2019 카카오 개발자 겨울 인턴십 코딩테스트 - 튜플 (0) | 2020.04.09 |
2019 카카오 개발자 겨울 인턴십 코딩테스트 - 크레인 인형뽑기 게임 (0) | 2020.04.04 |
2020 카카오 공채 코딩테스트 - 가사검색 (0) | 2020.01.28 |