티스토리 뷰
728x90
https://www.acmicpc.net/problem/14753
14753번: MultiMax
There are n cards, each with an integer on it where two or more cards can have the same integer. From these cards, we want to select two or three cards such that the product of numbers on the selected cards is maximum. For example, assume that there are 6
www.acmicpc.net
반복문으로 모든 값들을 비교하여 최댓값을 구하면 시간 초과가 발생하기 때문에
정렬 후 특정 경우에 대한 값들을 취합하여 비교하면 됩니다.
2개를 고를 때
1. list[0] * list[1] : 음수 * 음수가 최댓값일 경우
3. list[-2] * list[-1] : 양수 * 양수가 최댓값일 경우
3개를 고를 때
1. list[0] * list[1] * list[-1] : 음수 * 음수 * 양수가 최댓값
2. list[-3] * list[-2] * list[-1] : 양수 * 양수 * 양수가 최댓값
1
2
3
4
5
6
7
|
import sys
N = int(sys.stdin.readline())
lst = list(map(int, sys.stdin.readline().split()))
lst.sort()
lst2 = [lst[0]*lst[1], lst[-2]*lst[-1]]
lst3 = [lst[-3]*lst[-2]*lst[-1], lst[0]*lst[1]*lst[-1]]
print(max(max(lst2), max(lst3)))
|
cs |

'코딩 > 파이썬 백준' 카테고리의 다른 글
백준 2608 로마 숫자(파이썬) (0) | 2021.12.08 |
---|---|
백준 1254 팰린드롬 만들기(파이썬) (0) | 2021.12.08 |
백준 1260 DFS와 BFS (파이썬) (0) | 2021.12.03 |
파이썬 9536 여우는 어떻게 울지? (파이썬) (0) | 2021.12.01 |
백준 9322 철벽 보안 알고리즘 (파이썬) (0) | 2021.12.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 12788 파이썬
- 백준 1351 파이썬
- 백준 10825 파이썬
- 백준 2304 파이썬
- 백준 12034 파이썬
- 백준 20362 파이썬
- 백준 2304
- 백준 10825
- 백준 9205 파이썬
- 백준 4446 파이썬
- 백준 1351
- 백준 23253
- 백준 13335
- 백준 11123 파이썬
- 백준 2491 파이썬
- 백준 1916
- 백준 23253 파이썬
- 백준 9205
- 백준 1916 파이썬
- 백준 2075 파이썬
- 백준 2075
- 백준 12034
- 백준 6593
- 백준 12788
- 백준 13335 파이썬
- 백준 4446
- 백준 1504 파이썬
- 백준 20362
- 백준 6593 파이썬
- 백준 11123
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함