데이터사이언스 기록기📚

[프로그래머스] Level 2_최솟값 만들기(연습문제) 본문

Coding Test/프로그래머스(Python)

[프로그래머스] Level 2_최솟값 만들기(연습문제)

syunze 2022. 10. 4. 22:36

📌문제 유형

연습문제

 

📌문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📌나의 문제풀이

 - A는 오름차순, B는 내림차순으로 정렬

 - 리스트 순서대로 곱한 후,  모두 합하기

def solution(A,B):
    answer = 0
    
    A.sort()
    B.sort(reverse = True)
    
    for i in range(len(A)):
        answer += (A[i] * B[i]) 

    return answer

 

📌다른 사람들의 풀이

 1) 한 줄 코드

def getMinSum(A,B):
    return sum(a*b for a, b in zip(sorted(A), sorted(B, reverse = True)))
def getMinSum(A,B):
    return sum(map(lambda a,b : a*b, sorted(A), sorted(B, reverse=True)))

 

 2) min과 max를 매 번 찾기

  • 리스트 인덱스 찾기 : 리스트.index(해당 수)
  • 값 가져로기 : 리스트.pop(해당 인덱스)
def getMinSum(A,B):
    return sum(A.pop(A.index(min(A)))*B.pop(B.index(max(B))) for i in range(len(A)))

 

728x90
Comments