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