문자열은 새 값으로 이어 붙여요
문자 순회와 비교를 배웠어요. 문자열은 글자를 그 칸에 대입해 바꿀 수 없어요. 대신 +로 이어 붙인 새 문자열을 변수에 저장해요.
result = ""
result = result + "a"
result = result + "b"
print(result)
result는 빈 문자열에서 "a", 다시 "ab"로 바뀌어요. text를 읽고 result를 따로 구성하면 원본을 바꾸지 않아요. 다음 페이지에서는 같은 글자가 연속되는 덩어리와 남길 글자를 살펴봐요.
직전에 읽은 글자를 기억해요
text = "aaabbc"에서 연속된 같은 글자를 한 번만 남기면 "abc"예요. previous에 직전 글자를 저장해 새 글자와 비교해요.
previous = ""
for letter in text:
if letter != previous:
# 새로운 덩어리가 시작했어요.
print(letter)
previous = letter
!=는 서로 다른지 비교해요. 첫 a는 previous의 빈 문자열과 다르고, 뒤의 두 a는 직전 a와 같아요. previous는 조건 밖에서 매번 갱신해요. 과제에서는 print로 각각 출력하는 대신 result에 이어 붙여 한 줄을 만들어요. 떨어져 있는 같은 글자는 새로운 덩어리예요.
직접 풀어봐요
text에서 연속된 같은 글자는 한 글자만 남겨요. 남긴 글자를 순서대로 이어 붙인 문자열을 출력해요. 빈 문자열은 빈 줄로 출력해요.
입력은 한 줄의 영문 소문자 문자열 text(0~100자)예요. 출력은 새 문자열 한 줄이에요.
예시 1: "aaabbc" → "abc". a·b·c 덩어리에서 하나씩 남겨요.
예시 2: "abbaa" → "aba". 떨어져 있는 두 a 덩어리는 각각 남아요.
예시 입력
aaabbc
예상 결과
abc
예시 입력
abbaa
예상 결과
aba
핵심 개념
stl-string: 문자열은 새 값으로 구성해요. 직전 글자와 다른 때만 덩어리의 첫 글자를 남겨요.