각 테스트케이스의 최빈수를 구하는 문제.
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) # 가장 많이 카운팅 된 값중 최댓값!
이때, 최빈수가 여러개 일때는 가장 점수가 큰 값을 출력해야 하므로 가장 많이 카운팅 된 값들을 뽑아 그 중 최댓값을 출력하였다.
'코딩테스트 > SWEA' 카테고리의 다른 글
| [Python, 파이썬] SWEA 1954. 달팽이 숫자 (1) | 2024.10.15 |
|---|---|
| [Python, 파이썬] SWEA 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2024.10.15 |
| [Python, 파이썬] SWEA 1206. [S/W 문제해결 기본] 1일차 - View (0) | 2024.10.15 |
| [Python, 파이썬] SWEA 1859. 백만 장자 프로젝트 (1) | 2024.10.15 |
| [Python, 파이썬] SWEA 2072. 홀수만 더하기 (0) | 2024.10.15 |