파이썬 코드 오류 질문입니다! 한 번 부탁드리겠습니다!!
조회수 976회
문자열을 하나 입력받고, 해당 문자열에서 동일한 문자가 연속으로 등장하는 횟수를 계산하는 코드를 작성하세요.
이 때 연속으로 등장하는 횟수가 가장 많은 경우를 출력하도록 작성하세요.
s=input()
maxi=0
count=0
last=s[0]
for c in s:
if last == c:
count +=1
last=c
else:
if maxi<= count:
maxi=count
last=c
count= 1
print(maxi)
위와 같이 적었는데 가장 많은 경우가 출력이 되지 않네요. 고견 부탁드리겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
if maxi<= count:
조건의 문제 입니다.else
로 빠졌을 때last
와count
는 항상 설정되야 합니다.count
를 1 로 설정하지 않을 경우, 이전의 연속된 문자에 대한 갯수가 포함된 수를 계산하게 됩니다.last
를 설정하지 않으면 이전 문자가 다른 문자여도 같은 문자로 계산할 수 있습니다.그리고 가장 긴 연속된 문자가 마지막에 있을 수 있으므로
for
문 밖에서 최대값 비교를 한번 더 해야합니다.따라서 아래와 같이 수정할 수 있습니다.
s = input() maxi = 0 count = 0 last = s[0] for c in s: if last == c: count += 1 else: if maxi < count: maxi = count count = 1 last =c if maxi < count: maxi = count print(maxi)
-
s = input() maxi = 0 count = 1 for i in range(len(s)-1): if s[i] == s[i+1]: count += 1 else: count = 1 if maxi < count: maxi = count print(maxi)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력