본문 바로가기
프로그래머스/2단계

(Python/LV2) 최솟값 만들기

by windy7271 2022. 9. 19.
728x90
반응형

문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/12941

 

프로그래머스

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

programmers.co.kr

풀이 : 


def solution(A,B):
    res = 0
    for x, y in zip(A.sort(),B.sort(reverse=True)):
        res += x * y
    return res

print(solution([1, 4, 2],[4, 5, 4]))

 

리스트에서 가장 작은수랑 가장큰수랑 곱셈해서 더하는게 가장 최솟값이다.

 

정답을 맞추고 나서 컴프리핸션을 해 보았다.

return  sum([x*y for x, y in zip(sorted(A), sorted(B, reverse=True))])

여기서는 A.sort() 가 되지 않는다. 

이유:

sort() 메소드는 아무것도 리턴시켜 주지 않지만

sorted() 메소드는 새로운 리스트를 리턴시켜준다.

 

반응형

댓글