[SWEA] 1204_최빈수 구하기

김태민·2021년 8월 21일
3

Mingssssss

1. 문제

어느 고등학교에서 실시한 1000명의 수학 성적을 토대로 통계 자료를 만들려고 한다.

이때, 이 학교에서는 최빈수를 이용하여 학생들의 평균 수준을 짐작하는데, 여기서 최빈수는 특정 자료에서 가장 여러 번 나타나는 값을 의미한다.

다음과 같은 수 분포가 있으면,

10, 8, 7, 2, 2, 4, 8, 8, 8, 9, 5, 5, 3

최빈수는 8이 된다.

최빈수를 출력하는 프로그램을 작성하여라 (단, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라).

[제약 사항]

학생의 수는 1000명이며, 각 학생의 점수는 0점 이상 100점 이하의 값이다.

[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄부터는 점수가 주어진다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다.

2. 코드

T = int(input())

for tc in range(T):
    test = input()
    numbers = input()
    numbers = numbers.split()                   # 띄어쓰기 기준으로 앞, 뒤로 자름 그 후 리스트에 담음        
    numbers = list(map(int, numbers)) 
    
    results = {}
    result_values = []
    cnt = 0
    check_number = 0
    result = 0
    for rng in range(1,101):
        results[rng] = numbers.count(rng)
    
    for result_values in results.values():
        if result_values >= check_number:
            check_number = result_values
            result = cnt + 1
            cnt += 1
        else:
            cnt += 1

    print(f'#{tc+1} {result}')

3. 리뷰

리스트를 탐색하여 가장 많이 나온 숫자를 찾아서 그 숫자가 리스트에서 몇 번 카운트
됐는지를 반환했다.

profile
어제보다 성장하는 개발자

2개의 댓글

comment-user-thumbnail
2022년 10월 12일

안녕하세요 최빈수입니다, 제 이름 가지고 놀리시다니 고소하겠습니다. 지금 ppt따서 경찰서 가는 중이니 고소장이나 기다리세요.

1개의 답글