Problem From.
https://leetcode.com/problems/string-compression/
오늘 문제는 주어진 배열에서 글자를 센 다음 글자의 종류, 글자의 수 를 다시 그 배열에 덮어씌워 반환하는 문제였다.
투포인터를 응용하여 풀 수 있었는데, 처음에 prev 라는 포인트를 두고 cnt 라는 숫자를 두어 각 낱말이 반복되는 수를 세어 원래의 chars 배열에 덮어씌워주는 형식으로 문제를 풀 수 있었다.
처음에는 원래의 배열에 덮어씌우는지 몰라서 맞는 풀이를 가지고 조금 헤맸었다...
class Solution {
fun compress(chars: CharArray): Int {
var cnt = 1
var prev = 0
for(i in 1 until chars.size) {
if(chars[prev] == chars[i]) {
cnt += 1
}else {
if(cnt > 1) {
cnt.toString().forEach {
prev += 1
chars[prev] = it
}
}
prev += 1
chars[prev] = chars[i]
cnt = 1
}
}
if(cnt > 1) {
cnt.toString().forEach {
prev += 1
chars[prev] = it
}
}
return prev + 1
}
}