https://www.acmicpc.net/problem/1026
output이해를 잘못해서 조금 돌아갔지만, 결과값 s가 아닌 새로이 벼열한 리스트를 return하는 방식의 문제 또한 충분히 좋았을 것 같다.
color scripter를 이용해서 코드를 업로드하고 있었는데, 불규칙적으로 사이즈가 커지거나, 정렬 오류가 발생하는 경우가 종종 생겨서 다른 방식의 필요성을 느꼈다. html을 미약하게 공부한 상태라 자신감이 붙어서, 구글링으로 검색한 블로그들의 추천대로 다양하게 접근해봤는데 결국 실패했다. 뭐가 문제인지 도무지 모르겠는데, 답답해 죽겠다.
당분간 불안정한 상태의 코드들이 업로드될 것 같다...
# PYTHON CODE
import sys
n = int(sys.stdin.readline())
list1 = list(map(int, sys.stdin.readline().split()))
list2 = list(map(int, sys.stdin.readline().split()))
list3 = []
answer = [None] * n
result = 0
for idx, k in enumerate(list2):
list3.append([idx, k])
list3.sort(key=lambda x: x[1])
list1.sort(reverse=True)
for i in range(n):
answer[list3[i][0]] = list1[i]
for i in range(n):
result += answer[i] * list2[i]
print(result)
enumerate를 이용해 두번째 리스트에 인덱스를 부여해준 뒤, 그에 따라서 새로운 리스트를 정렬해준다.
'백준 > 정렬' 카테고리의 다른 글
[Python] 백준, 5052(정렬 알고리즘) (0) | 2021.08.28 |
---|---|
[Python] 백준, 10814(정렬) (0) | 2021.08.20 |
[Python] 백준, 1181(정렬) (0) | 2021.08.19 |
[Python] 백준, 1427(정렬) (0) | 2021.08.18 |
[Python] 백준, 2751(정렬) (0) | 2021.08.18 |