반응형
1) 사이트
2) 문제
리스트 A와 B가 있는데, B를 재배열하여 최고의 수가 도출될 수 있도록 하면 된다.
3) 파이썬 코드
n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
c=[[0]*2 for _ in range(n)] #곱하면 최소 되는 조합 저장 리스트 (b_index,b_value)
#1. a리스트 정렬 / sort에 a=a.sort()식으로 사용하면 none 도출됨
a.sort(reverse=True)
x_min=100000
#2. a리스트 가장 높은 인덱스부터 for문 진행
for i in range(n):
for j in range(n):
if (a[i]*b[j]<x_min) and b[j]>=0:
x_min=a[i]*b[j]
c[i][0]=j
c[i][1]=b[j]
#최종적으로 쌍이된 b 위치에 -1 삽입
b[c[i][0]]=-1
#x_min 초기화 필수
x_min=100000
#3. 최종계산
result=0
for k in range(n):
result+=a[k]*c[k][1]
print(result)
x_min 최소화안해서 결과값 도출이 안되었던 실수가 있었다.
3-1) 선수 지식
파이썬 코드를 이해하기 위해 알아야 할 선수 지식이 있습니다.
1. 숫자 리스트 역정렬하는 방법
>리스트.sort(reverse=True)
END
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[그리디 알고리즘-Java] 5585번 거스름돈 (0) | 2023.01.31 |
---|---|
[그리디 알고리즘-Java] 1541번 잃어버린 괄호 (0) | 2023.01.30 |
1931번 회의실 배정 (0) | 2022.10.21 |
11047번 동전 0 with python3 (0) | 2022.10.13 |
2750번 수 정렬하기 (2) | 2021.07.31 |