백준 2822

soss·2022년 10월 11일
0
post-thumbnail
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=' ') # 줄바꿈없이 출력 

시행착오

문제를 보자마자 딕셔너리형으로 입력받은 각 수마다 번호를 부여하고 싶다는 생각이 들었다. 평소에 리스트형을 사용하다보니 딕셔너리를 이용한 풀이를 하는 데에는 아직 조금 서투르다. 다른 정답 코드를 확인해보진 않았지만 더 간결하고 좋은 풀이가 있을 것...

알게된 점

  1. sorted 함수를 사용하면 리스트형으로 바뀜
  2. print(end = '') 출력문의 끝, 디폴트는 end='\n'
profile
안녕하세요. 복습 목적으로 문제 풀이를 올리고 있습니다.

0개의 댓글