•
문제 링크 : leetcode.com
•
문제 설명 : 조건에 맞도록 압축 문자열을 구성 후, 기존 주어진 배열에 설정한다.
•
풀이 방법
◦
간단한 구현에 가까웠던 문제였던 것 같다.
◦
우선 새로운 압축 문자열을 기존 배열의 뒷 공간에 append 해준 후, 기존 위치에 Overwrite하는 방식을 사용하였다.
•
시간복잡도 :
•
성공 코드
class Solution:
def compress(self, chars: List[str]) -> int:
prev_char = chars[0]
char_count = 0
len_chars = len(chars)
for i in range(len_chars):
# 다른 문자열일 때
if prev_char != chars[i]:
# 문자열 정보 추가
chars.append(prev_char)
# 동일 문자열이 1개 이상일 때
if char_count > 1:
chars += list(str(char_count))
# 정보 초기화
prev_char = chars[i]
char_count = 1
else:
char_count += 1
# 마지막 문자에 대한 처리
chars.append(prev_char)
if char_count > 1:
chars += list(str(char_count))
# 압축 문자열 길이
len_new_word = len(chars) - len_chars
# 배열의 뒤쪽에 추가된 압축 문자열을 배열의 시작 부분에 overwrite
for i in range(len_new_word):
chars[i] = chars[i + len_chars]
# 압축된 문자열을 제외한 문자는 삭제
for _ in range(len(chars) - len_new_word):
chars.pop()
Python
복사