파이썬 리스트에서 가장 많이 연속으로 반복되는 숫자의 반복횟수

조회수 3800회

예를들면 리스트에 [ 2,2,2,4,4,5,6,1,1,1,1,1,2,3,1,4]

이런식으로 있는데

여기서 가장 많이 연속으로 반복되는 숫자인 1이 5번 반복되므로 출력을 5 라고 하고싶은데 어떻게 해야 할까요? 조건을 어떻게 주어야 할지 모르겠네요.

2 답변

  • 안녕하세요. 조건을 어떻게 주어야하냐면 인덱스번호로 li[i] == li[i+1]나 li[i-1] == li[i]로 비교하면됩니다.

    li = [2, 2, 2, 4, 4, 5, 6, 1, 1, 1, 1, 1, 2, 3, 1, 4]
    max_count = 0
    count = 0
    for i in range(0, len(li)-1):
        if li[i] == li[i+1]:
            count += 1
        else:
            if max_count < count:
                max_count = count
                count = 0
    print(max_count)
    

    또는

    li = [2, 2, 2, 4, 4, 5, 6, 1, 1, 1, 1, 1, 2, 3, 1, 4]
    max_count = 0
    count = 0
    for i in range(0, len(li)-1):
        if li[i] == li[i+1]:
            count += 1
        else:
            if max_count < count:
                max_count = count
                max_num = li[i]
                count = 0
    print(str(max_num) + "가 " + str(max_count) + "번연속으로 나왔습니다.")
    
    • scala 로 해보기
    List(2,2,2,4,4,5,6,1,1,1,1,1,2,3,1,4).groupBy(identity).mapValues(_.size).maxBy(_._2)
    // (1,6)  // 1이 6개
    
    List(2,2,2,4,4,5,6,1,1,1,1,1,2,3,1,4).groupBy(identity).mapValues(_.size).maxBy(_._2)._2
    // 6
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)