코딩테스트/SWEA
[Python, 파이썬] SWEA 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기
알코딩
2024. 10. 15. 15:18
각 테스트케이스의 최빈수를 구하는 문제.
T = int(input()) # 테스트 케이스의 수 T
for test_case in range(1, T+1):
N = int(input()) # 테스트 케이스의 번호
score = list(map(int, input().split())) # 학생의 점수들
table = [0 for i in range(101)] # 각 score의 개수를 count할 표
# 각 score를 count 한다
for num in score:
table[num] += 1 # count
# 가장 큰 값, 최빈수 구하기
index = max(table) # 가장 많이 나온 횟수
max_value = [i for i, value in enumerate(table) if value==index] # 최고로 많이 나온 값들
print("#%d %d" %(test_case, max(max_value)))
[문제풀이]
최빈수란 특정 자료에서 가장 여러번 나타나는 값을 의미한다.
각 score를 배열의 index에 맞춰 카운팅해서 가장 많이 나온 값을 구한다.
max_value = [i for i, value in enumerate(table) if value==index] # 최고로 많이 나온 값들
max(max_value) # 가장 많이 카운팅 된 값중 최댓값!
이때, 최빈수가 여러개 일때는 가장 점수가 큰 값을 출력해야 하므로 가장 많이 카운팅 된 값들을 뽑아 그 중 최댓값을 출력하였다.