파이썬 코드 오류 질문입니다! 한 번 부탁드리겠습니다!!

조회수 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 로 빠졌을 때 lastcount 는 항상 설정되야 합니다.

    count1 로 설정하지 않을 경우, 이전의 연속된 문자에 대한 갯수가 포함된 수를 계산하게 됩니다.

    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)
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)