반응형
Notice
Recent Posts
Recent Comments
Link
7JeY world
[Programmers] 문자열 압축 / Python 본문
반응형
def solution(s):
answer = len(s)
for i in range(1, int(len(s)/2) +1): #압축 단위는 아무리 커봤자 문자열 길이의 절반
pos = 0 #어느 위치에서 문자열을 처리하고 있는지 표현하는 변수
#압축되었을때의 길이만 필요하다..길이만 구해보겠음
length = len(s) #문자열 길이로 표현한 다음 압축되는것 만큼 빼거나 더해서 구한다
while pos + i <= len(s) : #진행은 문자열 끝까지
unit = s[pos:pos+i] #압축 하고자 하는 단위만큼 문자열을 불러온다
pos += i
#포지션 진행해서 거기에 이제 ab가 또 있는지 확인해야한다
cnt = 0
while pos + i <= len(s):
if unit == s[pos:pos+i]: #ab읽어서 다음 2~4에 ab가 있는지 같은지
cnt +=1
pos += i
else:
break #아니면 while문 빠져나오기..
#이 while끝나고 나면 unit이 몇번 반복되었는지 구해졌을 것
if cnt > 0: #반복된게 있다고 하면 ..
length -= i * cnt # 한번 반복되면 한번 빼고 두번 반복되면 두번 빼고 이런식
if cnt < 9 :
length += 1
elif cnt < 99 :
length += 2
elif cnt < 999:
length += 3
else:
length +=4
answer = min(answer, length)
return answer
반응형
'Programming > for coding test' 카테고리의 다른 글
[자격증] SQLD 공부 자료 (0) | 2022.02.25 |
---|---|
[백준 12851번] 숨바꼭질2 / Java (0) | 2020.03.30 |
[백준 1697번] 숨바꼭질 / Java (0) | 2020.03.22 |
[백준 1987번] 알파벳 / Java (0) | 2020.03.16 |
[백준 9663번] N-Queen / Java (0) | 2020.03.08 |
Comments