← 학습 코스

연속된 같은 글자를 한 번만 남기기

Python전체 작성형

문자열은 새 값으로 이어 붙여요

문자 순회와 비교를 배웠어요. 문자열은 글자를 그 칸에 대입해 바꿀 수 없어요. 대신 +로 이어 붙인 새 문자열을 변수에 저장해요.

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의 aaabbc를 연속 덩어리 aaa·bb·c로 나누고 각 첫 글자를 이어 abc로 구성하는 관계

직접 풀어봐요

text에서 연속된 같은 글자는 한 글자만 남겨요. 남긴 글자를 순서대로 이어 붙인 문자열을 출력해요. 빈 문자열은 빈 줄로 출력해요.

입력은 한 줄의 영문 소문자 문자열 text(0~100자)예요. 출력은 새 문자열 한 줄이에요.

예시 1: "aaabbc" → "abc". a·b·c 덩어리에서 하나씩 남겨요. 예시 2: "abbaa" → "aba". 떨어져 있는 두 a 덩어리는 각각 남아요.

예시 입력

aaabbc

예상 결과

abc

예시 입력

abbaa

예상 결과

aba
핵심 개념
  • stl-string: 문자열은 새 값으로 구성해요. 직전 글자와 다른 때만 덩어리의 첫 글자를 남겨요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기