실수로 아이디어 봐버림…

  1. (index, value)로 튜플 만들어 값 비교
  2. enumerate()
  3. key 사용
  4. reversed() 사용 (min(), max()는 같은 max값이 있다면 작은 index순으로 저장하므로, 리스트 전체 순서를 뒤집어버리기. 단, reversed()는 리스트 순서만 뒤집는 것, 지금 full_list = [0]*10 의 각 칸이 0-9의 인덱스 역할도 같이 하므로 값을 보는 sorted(reverse=True)가 아니라 단순히 순서만 뒤집어야 인덱스도 뒤집힘

  1. (index, value) 튜플 버전
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for i in range(1, T + 1):
    input()
    input_list = list(map(int, input()))
    full_list = [0]*10
    answer = () #이 정의 없어도 runtime error
    for j in range (len(input_list)):
        full_list[input_list[j]] += 1
        
    max_value = max(full_list)
    
    for k in range (10): # 0-9
        if full_list[k] == max_value:
            # 계속 덧입혀지니까 가장 마지막에 덮어 쓴, index 큰 애가 승자가 됨
            answer = k, full_list[k] #answer = (k, full_list[k]) 이런식으로 쓰면 runtime error, ma
    print (f"#{i} {answer[0]} {answer[1]}")
  1. enumerate() 버전

  2. key 버전

  3. reversed() 버전

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for i in range(1, T + 1):
    input()
    input_list = list(map(int, input()))
    full_list = [0]*10
    for j in range (len(input_list)):
        full_list[input_list[j]] += 1
    # full_list의 max값에 해당하는 index = 카드 숫자, value =  카드 장수  
    # max 값 2개 있음 index가 큰 걸 골라야 함
    # 근데 max는 값이 같으면 처음 나온 게 유지됨 - 리스트를 뒤집자 
    reversed_list = list(reversed(full_list))
    # print (f"#{i} , max(full_list)")
    # max(reversed_list)는 장수! index가 카드의 수
    # many는 장수
    # reverse 되었으므로 구한 index를 9에서 빼야 함
    # full_list에도 못 넣는게, many 값이 서로 다른 index끼리 겹치면 빠른(작은) 수의 index 나오니...
    many = max(reversed_list)
    print (f"#{i} {9-(reversed_list.index(many))} {many}")