반응형
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
import heapq
def solution(A):
# write your code in Python 3.6
minusGroup=[]
minusReverse=[]
plusGroup=[]
zero=False
for i in A:
if i<0:
heapq.heappush(minusGroup,i)
heapq.heappush(minusReverse,-i)
#minusGroup.append(i)
elif i>0:
heapq.heappush(plusGroup,-i)
elif i==0:
zero=True
# 마이너스 2개 이상+ max 양수
answer=0
if len(minusGroup)>=2 and len(plusGroup)>0:
a1=heapq.heappop(minusGroup)
a2=heapq.heappop(minusGroup)
a3=min(plusGroup)
a3*=-1
answer=max(a1*a2*a3,answer)
elif len(plusGroup)==0: # 마이너스 꽃밭
if zero:
return 0
else:
a1=heapq.heappop(minusReverse)
a2=heapq.heappop(minusReverse)
a3=heapq.heappop(minusReverse)
return -1*a1*a2*a3
# 양수 3개
if len(plusGroup)>2:
a1=heapq.heappop(plusGroup)
a2=heapq.heappop(plusGroup)
a3=heapq.heappop(plusGroup)
a1*=-1
answer=max(a1*a2*a3,answer)
return answer
반응형
'알고리즘' 카테고리의 다른 글
백준 17068번 아기 상어2 (0) | 2021.03.08 |
---|---|
프로그래머스 레벨2 괄호 변환 2020 카카오 블라인드 채용문제 (0) | 2021.03.07 |
프로그래머스 스텝2 뉴스 클러스터링 (0) | 2021.03.04 |
백준 17070번 파이프 옮기기 1 골드5 (0) | 2021.03.03 |
백준 1197번 최소 스패닝 트리- 유니온 파인드 파이썬 골드4 (0) | 2021.03.02 |