반응형
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13zo1KAAACFAYh
카운팅 알고리즘을 이용해서 풀이
2021.08.23 - [분류 전체보기] - [알고리즘] 카운팅정렬 이해하기
# [s/w 문제해결 기본] 1일차 - 최빈수 구하기
T = int(input())
for tc in range(1, T+1):
test_case = int(input())
score_list = list(map(int,input().split()))
max_num = 0
max_idx = 0
counts = [0] * 101
for i in range(1000):
counts[score_list[i]] += 1
# print(counts)
for i in range(101):
if counts[i] >= max_num:
max_num = counts[i]
max_idx = i
print('#{} {}'.format(tc, max_idx))
처음에 큰 수의 index를 받기 위해
for i in range(101):
if counts[i] >= max_num:
max_num = counts[i]
max_idx = score_list.index(max_num)
print('#{} {}'.format(tc, max_idx))
이 방법을 이용해서 풀었는데 이렇게되면 max_num은 큰 인덱스 값을 가리칠지언정 max_idx가 가져오는 값은 결국 'max_num과 같은 값을 가지고 있는 가장 작은 값'이 나오기 때문에 문제에서 주어지는
단, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라
조건을 지킬 수 없다
index값을 어떻게 받아올 수 있을지 리스트를 뒤에서부터 정렬도 해보고 별짓을 다 했는데
결론은 그냥 i 값을 받아오면 되는거였다.
반응형
'study > swea' 카테고리의 다른 글
[swea] 1984. 중간 평균값 구하기 : python (0) | 2021.09.21 |
---|---|
[swea] 1983. 조교의 성적 매기기 : python (0) | 2021.09.21 |
[swea] 1284. 수도 요금 경쟁 : python (0) | 2021.09.21 |
[swea] 1986. 지그재그 숫자 : python (0) | 2021.09.20 |
[swea] 2007. 패턴 마디의 길이 : python (0) | 2021.09.20 |