메뉴 건너뛰기

Python 일반 - 문자열 압축

Eugene 2022.04.19 18:29 조회 수 : 149

a = input()

 

prevChar = ''

charCnt = 0

 

for i in range(len(a)):

    if prevChar != a[i]:

        prevChar = a[i]

        if (charCnt != 0):

            print(charCnt, end = '')

        charCnt = 1

        print(a[i], end = '')

    else:

        charCnt += 1

print(charCnt)

 

이 프로그램은 aaaabbbccccdd 와 같은 문자열이 입력되면, a4b3c4d2와 같이 각 문자열의 개수를 세어 문자뒤에 붙여주는 것이다.

이 프로그램은 문자열이 바뀌는 지점과 바뀌지 않는 지점에서의 처리로 구현하였다.

변수 prevChar는 이전 문자를 담고 있으며, 최초에는 공백 문자를 가진다.

변수 charCnt는 문자가 바뀔 때 1로 초기화 하여, 바뀌지 않을 때에는 1씩 증가한다.

바뀔 때 출력을 하여주고, 처음에는 문자 수 세는 것을 출력하지 않고, 문자만을 출력하며, 그 후에는 바뀔 때 문자 수와 문자를 출력한다.

반복문이 종료되면, 마지막 문자의 문자 수를 출력하여 준다.

번호 제목 글쓴이 날짜 조회 수
21 Python 일반 - n까지의 수 중에서 소수(Prime Number) 구하기 Eugene 2022.09.02 263
» Python 일반 - 문자열 압축 Eugene 2022.04.19 149
19 Python 일반 - 1등에서 3등까지 사탕 나눠주기 Eugene 2022.03.14 165
18 Python 일반 - 올바른 괄호문자열인가? Eugene 2022.01.26 138
17 Python 일반 - 깊이 우선 탐색 Eugene 2021.03.04 239
16 Python 일반 - Bubble Sort(버블 정렬) Eugene 2020.02.29 313093
15 Python 일반 - 10진수를 2진수로 변환 [1] Eugene 2020.02.19 1790
14 Python 일반 - 스택/큐를 사용하지 않은 회문 알고리즘 Eugene 2019.10.09 455
13 Python 최대 증가 부분 수열 구하기. mangdee 2019.07.06 364
12 python 팬미팅 알고리즘 mangdee 2019.06.21 393
11 Python 동적 변수 생성 mangdee 2019.06.05 13836
10 Python 순열과 조합 mangdee 2019.06.04 1120
9 Python 일반 - 2중 루프를 이용한 문자로 여러가지 삼각형 그리기 [1] Eugene 2019.04.11 2384
8 Python 일반 - 2중 루프를 이용한 문자로 삼각형 찍기 Eugene 2019.02.19 483
7 Python 기초: 논리적 물리적 행(line) Eugene 2018.10.24 4665
6 Python 기초: 재귀함수를 이용한 최대값 구하기. [1] Eugene 2018.09.08 6432
5 Python 기초 - 변수와 문자 상수의 사용 Eugene 2018.06.12 459
4 Python 기초 - 이스케이프(escape) 문자와 변수 외... Eugene 2018.01.24 1711
3 Python 기초 - 주석과 자료형 2: format() Method Eugene 2017.10.27 442
2 Python 기초 - 주석과 자료형 1 Eugene 2017.10.19 1139