문자열압축
문자열압축
기본적으로 ChatGPT를 이용하여 틀을 잡고 만든 것
문자열을 압축하는 문제로, 같은 문자가 반복되는 경우
그 반복되는 문자의 개수를 숫자로 표현하여 압축된 문자열을 출력해야 합니다.
문자열압축 1
문자열에서 같은 문자가 반복되는 경우
그 반복되는 문자의 개수를 숫자로 표현하여
압축한 문자열을 출력하는 함수 compress_string을 작성하세요.
예시: “aaabbcccc” → “a3b2c4”
def compress_string(s):
result = ""
count = 1
for i in range(len(s)-1):
if s[i] == s[i+1]:
count+=1
else:
result += s[i]+str(count)
count=1
result += s[-1]+str(count)
return result
s = "aaabbcccc"
print(compress_string(s))
a3b2c4
문자열압축 2
문자열을 입력받아서 연속된 중복 문자열을 제거하고,
제거한 결과를 반환하는 remove_duplicates 함수를 작성하세요.
예를 들어, 문자열 “aabbccddeeff”를 입력받으면 “abcdef”를 반환해야 합니다.
제한 사항:
입력 문자열의 길이는 1000 이하입니다.
문자열은 알파벳 소문자로만 이루어져 있습니다.
def remove_duplicates(s):
if not s:return ""
result = ""
for i in range(len(s)-1):
if s[i]!=s[i+1]:
result+=s[i]
# 마지막 문자 추가
result += s[-1]
return result
s = "aabbccddeeff"
print(remove_duplicates(s))
abcdef
- 알고리즘
- 문자열을 처음부터 순회하면서, 현재 문자와 이전 문자가 같은지 확인합니다.
- 같은 경우 중복 문자열에 추가하지 않고, 다른 경우 중복 문자열에 추가합니다.
- 마지막 중복문자는 추가되지 않으므로 추가해준다.
- 중복 문자열이 모두 추가되면 최종 결과 문자열에 이어붙입니다.