728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120862#
내 풀이
def solution(numbers):
# 제공된 배열을 정렬한다.
numbers.sort()
# 가장 작은 수 2개를 곱한 값과 가장 큰 수를 곱한 값 중 더 큰 값을 return 한다.
return max(numbers[0]*numbers[1], numbers[-1]*numbers[-2])
처음에는 제공된 배열을 음수와 양수로 나누어 여러가지 케이스들을 제한하여 문제를 풀었는데,, 그렇게하니 고려해야할 케이스들도 너무 많았고, 테스트 케이스는 다 맞더라도 실제 채점에서 계속 1개씩 오류가 발생하였다. (하나를 해결하면 다른 하나가 문제..)
그래서 다른 사람의 풀이를 살짝 참고하여 문제를 풀어보았다.
먼저, 제공된 배열은 순서대로 정렬하고, 가장 작은 수 2개를 곱한 값과 가장 큰 수를 곱한 값 중 더 큰 값을 answer로 반환한다.
왜냐면, 가장 작은 수 2개를 곱했을 때, 음수가 2개 이상이라면 곱했을 때 양수가 되어 그 값이 최댓값이 될 가능성이 있고
가장 큰 값 2개를 곱하면 이 역시 최댓값이 될 가능성이 있기 떄문이다.
느낀점
생각보다 너무 쉽게 풀 수 있는 문제였다👿 이런 간단한 것도 생각하지 못한 나에게 화가 나지만...
화이팅-!
봄이 온 탓인지 공부하기 너무 싫다
놀고싶다
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 숨어있는 숫자의 덧셈 (2) (0) | 2024.03.14 |
---|---|
[프로그래머스][PYTHON] Lv. 0 다항식 더하기 (0) | 2024.03.14 |
[프로그래머스][PYTHON] Lv. 0 캐릭터의 좌표 (0) | 2024.03.12 |
[프로그래머스][PYTHON] Lv. 0 직사각형 넓이 구하기 (0) | 2024.03.11 |
[프로그래머스][PYTHON] Lv. 0 OX퀴즈 (0) | 2024.03.08 |