반응형
1. 문제
2. 풀이
단순구현
3. 구현
> TypeError: string indices must be integers
문제는tmpStr = s[0, int(step)] 이었다. string indice를 하려면 다음과 같이 적어야한다.
tmpStr = s[0:step]
def solution(s):
answer = 0
le = len(s)
for step in range(1, le+1):
cnt=0
tmpStr = s[0, int(step)]
for i in range(0, le+1, step):
if tmpstr == s[i, i+int(step)]:
cnt+=1
else:
if cnt==1:
answer+=tmpStr
else:
answer+=cnt
answer+=tmpStr
cnt=0
return answer
두번째로,
cnt 숫자형을 string으로 바꿀 때 str(cnt) 하면 된다.
그리고 string끼리 더할 때는 st = st + new_st 형식을 맞춰줘야한다.
def solution(s):
answer = 0
le = len(s)
result = ""
for step in range(1, le+1):
cnt=0
tmpStr = s[0:step]
for i in range(0, le+1, step):
if s[i:i+int(step)]==tmpStr:
cnt+=1
else:
if cnt==1:
result= result + tmpStr
else:
result= result + str(cnt)
result= result + tmpStr
cnt=0
return answer
정답코드
def solution(s):
answer = 10002
le = len(s)
result = ""
if len(s)==1:
return 1
for step in range(1, le//2+1):
cnt = 1
tmpStr = s[0:step]
for i in range(step, le, step):
if s[i:i+step]==tmpStr:
cnt+=1
else:
if cnt==1:
result= result + tmpStr
else:
result= result + str(cnt)
result= result + tmpStr
cnt=1
tmpStr = s[i:i+step]
if cnt==1:
result = result + tmpStr
else:
result= result + str(cnt)
result = result + tmpStr
if len(result)<answer:
answer = len(result)
# print(result)
result=""
return answer
반응형
'PS > 프로그래머스' 카테고리의 다른 글
프로그래머스 124나라의 숫자 python (0) | 2021.06.14 |
---|---|
프로그래머스 튜플 python (0) | 2021.06.13 |
프로그래머스 타겟넘버 python, BFS로 풀기 (0) | 2021.06.10 |
프로그래머스 기능개발 python (0) | 2021.06.10 |
프로그래머스 x만큼 간격이 있는 n개의 숫자 python3 (0) | 2021.06.01 |
댓글