본문 바로가기
Algorithm/Python

[문자열탐색] 문자열 압축

by _sweep 2021. 12. 10.

https://cansweep.tistory.com/219

 

[문자열탐색] 문자열 압축

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다. 📋 문제 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자의 바로 오른쪽에

cansweep.tistory.com

 

위 문제를 다시 python을 이용해 풀어보았다.

 

 

💡 사용된 개념

re.sub()

string에서 pattern을 repl로 변환한 문자열을 반환한다.

re.sub(pattern, repl, string, count=0, flags=0)
  • pattern : 찾을 패턴
  • repl : 대체할 문자열
  • string : 주어진 문자열

 

 

📝 풀이

 

import re

answer = ""
s = "KKHSSSSSSEE"
count = 1

for i in range(0, len(s)):
  if(i < len(s)-1 and s[i] == s[i+1]):
    count += 1
  else:
    answer += s[i] + str(count)
    count = 1
    
print(re.sub(r'1', '', answer))

 

주어진 문자열 s의 각 문자를 순회한다.

배열의 범위를 넘지 않는 부분에 대해서 s[i]와 s[i+1]이 동일한 문자라면 count에 1을 더한다.

동일한 문자가 아니라면 answer에 s[i]와 count를 문자열로 변환해 넣어준 후 count를 1로 초기화한다.

 

이후 1은 생략되기 때문에 re.sub()을 이용해 1을 빈 문자열로 바꾼 후 출력한다.

 

 

 

 

 

'Algorithm > Python' 카테고리의 다른 글

[LeetCode] Two Sum  (0) 2022.01.25
[프로그래머스] 베스트 앨범  (0) 2022.01.25
[프로그래머스] 위장  (0) 2022.01.24
[프로그래머스] 전화번호 목록  (0) 2022.01.24
[프로그래머스] 완주하지 못한 선수  (0) 2022.01.24

댓글