728x90
https://programmers.co.kr/learn/courses/30/lessons/12941
그냥 정렬해서 풀면됨... 최솟값음
A의 가장 작은수랑 B의 가장 큰수를 곱하는 방식으로 식을 짜면됨
sort로 정렬해서 풀면되는데 바보같이 순열을 구해서 완전탐색을 돌림
심지어 완전탐색이 안돼서 메모이제이션도씀 ㅋㅋㅋㅋ 풀릴리가.......
정렬로 푼 코드
1
2
3
4
5
6
7
8
9
10
11
|
def solution(A, B):
answer = 0
A = sorted(A)
B = sorted(B)
for i in range(len(A)):
answer += A[i] * B[len(A) - 1 - i]
return answer
|
cs |
바보같이 푼 코드(순열, 완전탐색) - 시간초과뜸
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from itertools import permutations
def solution(A, B):
answer = 123456789
per_li = list(permutations(range(len(B)), len(B)))
for permu in per_li:
mul = 0
for i in range(len(permu)):
mul += A[i] * B[permu[i]]
if answer > mul:
answer = mul
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 2 ] 숫자의 표현 파이썬/python (0) | 2021.06.07 |
---|---|
[프로그래머스 LV 2 ] 최댓값과 최솟값 파이썬/python (0) | 2021.06.07 |
[프로그래머스 LV 2 ] 피보나치 수 파이썬/python (0) | 2021.06.07 |
[프로그래머스 LV 2 ] 행렬의 곱셈 파이썬/python (0) | 2021.06.07 |
[프로그래머스 LV 2] N개의 최소공배수 파이썬/python (0) | 2021.06.07 |