[프로그래머스] lv0. 최댓값 만들기

주연·2023년 1월 27일
0

Python 문제 풀이

목록 보기
14/20
post-thumbnail

최댓값 만들기(1)

230127

문제

문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

제한사항
0 ≤ numbers의 원소 ≤ 10,000
2 ≤ numbers의 길이 ≤ 100

입출력 예

numbersresult
[1, 2, 3, 4, 5]20
[0, 31, 24, 10, 1, 9]744

풀이

def solution(numbers):
    n_sort = sorted(numbers)
    return n_sort[-1] * n_sort[-2]

좀 더 나은 방법을 찾으려고 해봤으나 이게 현재로서는 최선이었다.

  • 다른 사람 풀이
def solution(numbers):
    numbers.sort()
    return numbers[-2] * numbers[-1]

근데 뭐.. 다른 사람도 비슷하다. 후.. 보통은 됐다.

최댓값 만들기(2)

230130

문제

문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

제한사항
-10,000 ≤ numbers의 원소 ≤ 10,000
2 ≤ numbers 의 길이 ≤ 100

입출력 예

numbersresult
[1, 2, -3, 4, -5]15
[0, -31, 24, 10, 1, 9]240
[10, 20, 30, 5, 5, 20, 5]600

풀이

def solution(numbers):
    n_sort = sorted(numbers)
    return max(n_sort[-1] * n_sort[-2], n_sort[0] * n_sort[1])

어? 뭐지 하다가 음수랑 양수곱하면 음수되는데...
그럼 그냥 양수끼리 곱한거랑 음수끼리 곱한거 중 가장 큰 값을 최댓값으로 하자~하고 했다.

풀고 다른 사람 풀이도 봤는데 다 나랑 같다.
역시 사람 생각 거기서 거기군

profile
공부 기록

0개의 댓글