n_dict = {}
n_list = []
sum = 0
for i in range(8): # 입력받은 수(키)에 번호(밸류)를 부여
key = int(input())
n_dict[key] = i
n_dict2 = sorted(n_dict.items(), reverse = True) # 수(키)를 기준으로 내림차 순으로 정렬, 2차원 리스트형으로 바뀜
for i in range(5):
sum += n_dict2[i][0]
n_list.append(n_dict2[i][1]) #각 수(키)에 부여받은 번호(밸류)을 리스트에 추가
n_list.sort() # 각 수(키)에 부여받은 번호(밸류)를 오름차 순으로 정렬
print(sum)
for i in range(5):
print(n_list[i] + 1, end=' ') # 줄바꿈없이 출력
문제를 보자마자 딕셔너리형으로 입력받은 각 수마다 번호를 부여하고 싶다는 생각이 들었다. 평소에 리스트형을 사용하다보니 딕셔너리를 이용한 풀이를 하는 데에는 아직 조금 서투르다. 다른 정답 코드를 확인해보진 않았지만 더 간결하고 좋은 풀이가 있을 것...