TIL - Python itertools groupby 활용
CodeSignal이라는 알고리즘 문제 풀이 사이트에서 문제에서 정해준 규칙으로 문자열을 변경하는 Line Encoding이라는 문제를 푸는데..
규칙은 아래와 같았습니다.
- First, the string is divided into the least possible number of disjoint substrings consisting of identical characters
- for example,
"aabbbc"
is divided into["aa", "bbb", "c"]
- for example,
- Next, each substring with length greater than one is replaced with a concatenation of its length and the repeating character
- for example, substring
"bbb"
is replaced by"3b"
- for example, substring
- Finally, all the new strings are concatenated together in the same order and a new string is returned.
예시
For s = "aabbbc"
, the output should belineEncoding(s) = "2a3bc"
.
조금 무식하게 풀긴 풀었는데.. 풀고나서 다른 문제풀이들을 보니 itertools 모듈의 groupby를 활용해서 간단하게 푸는 것을 볼 수 있었습니다.
‘aabbbc’라는 문자열이 있을 때 아래와 같이 활용 가능합니다.
1 | from itertools import groupby |
1 | 'a' ['a', 'a'] 2 |
TIL - Python itertools groupby 활용
https://suyoungjang.github.io/2021/04/17/2021-04-17-TIL-python/