https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
문제
어느 고등학교에서 실시한 1000명의 수학 성적을 토대로 통계 자료를 만들려고 한다.
이때, 이 학교에서는 최빈수를 이용하여 학생들의 평균 수준을 짐작하는데, 여기서 최빈수는 특정 자료에서 가장 여러 번 나타나는 값을 의미한다.
다음과 같은 수 분포가 있으면,
10, 8, 7, 2, 2, 4, 8, 8, 8, 9, 5, 5, 3
최빈수는 8이 된다.
최빈수를 출력하는 프로그램을 작성하여라 (단, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라).
소스코드
t = int(input())
for tc in range(1,t+1):
a = int(input())
n = list(map(int,input().split()))
x = {}
for i in n:
if i in x:
x[i]+=1
else:
x[i]= 0
print("#{} {}".format(tc, max(x, key=x.get)))
소스코드 설명
1. list 입력받기
2. dict선언하기
3. 리스트 n만큼 반복하면서 딕셔너리 x에 i가 있을 경우 값을 1 증가, 아닐 경우 0으로 값을 삽입한다.
'알고리즘' 카테고리의 다른 글
[백준] 25206 - 너의 평점은 (0) | 2023.12.03 |
---|---|
[SWEA] 10804 - 문자열의 거울상 (1) | 2023.11.14 |
[백준] 2309 - 일곱 난쟁이 (1) | 2023.11.09 |
[백준] 20291 - 파일 정리 (0) | 2023.11.02 |
[백준] 10814- 나이순 정렬 (1) | 2023.11.02 |