https://leetcode.com/problems/string-compression/description/?envType=study-plan-v2&envId=leetcode-75
문제

코드
class Solution:
def compress(self, chars: List[str]) -> int:
tmp = chars[0]
cnt = 1
ans = []
if len(chars) < 2:
return 1
for i in range(1, len(chars)):
if tmp == chars[i]:
cnt += 1
else:
ans.append(tmp)
if cnt > 1:
ans.extend(list(str(cnt)))
tmp = chars[i]
cnt = 1
ans.append(tmp)
if cnt > 1:
ans.extend(list(str(cnt)))
chars[:] = ans
return len(chars)
Idea1
- 길이가 2보다 작다? -> 압축이 필요없이 정답은 1
- tmp = 0번 인덱스 문자, 1번 인덱스 문자와 비교 시작
-> 같다면 cnt += 1
-> 다르면 원본 문자 저장 & cnt가 1 이상이면 리스트(문자열) 형태로 추가(12 -> ['1', '2'])
-> 다 끝나고 위 과정 한번더 수행