코딩테스트/SW Expert Academy

[D2] 1204. 최빈수 구하기

2024. 9. 29. 17:30

1204. 최빈수 구하기

 

✏️ 문제 풀이

- 리스트 lst의 요소를 순회하면서 각 점수를 score 리스트의 해당 인덱스에 증가시킴 

(lst 리스트의 각 요소를 하나씩 ls라는 변수에 할당하면서 반복)

ex) 점수가 85인 경우 score[85] 1 증가

- mx: 점수가 몇 번 발생했는지 / mx_idx: 그 점수의 값 

- score 리스트의 인덱스를 0~100까지 순

T = int(input())

for tc in range(1, T + 1):
    N = int(input())
    lst = list(map(int, input().split()))
    
    # 점수를 카운트할 리스트 (0~100) 초기화
    score = [0] * 101

    # 각 점수에 대해 카운트
    for ls in lst:
        score[ls] += 1

    # 최대 점수 카운트와 그 인덱스 초기화
    mx = 0
    mx_idx = 0
    
    # 점수 리스트를 순회하며 최대 점수와 인덱스 찾기
    for i in range(len(score)):
        if score[i] > mx:  # 현재 점수가 더 높으면
            mx = score[i]  # 최대 점수 업데이트
            mx_idx = i  # 해당 인덱스 업데이트
        elif score[i] == mx:  # 점수가 같으면
            mx_idx = max(mx_idx, i)  # 인덱스 업데이트 (가장 큰 점수 인덱스)

    print(f"#{tc} {mx_idx}")