728x90
https://school.programmers.co.kr/learn/courses/30/lessons/118667
# 시간 초과
from collections import deque
def solution(queue1, queue2):
queue1 = deque(queue1)
queue2 = deque(queue2)
answer = 0
hap = sum(queue1 + queue2) / 2
hap1 = sum(queue1)
hap2 = sum(queue2)
queue = queue1 + queue2
if sum(queue1 + queue2) % 2 != 0:
return -1
if hap < max(queue):
return -1
if hap1 == hap:
return 0
if hap == max(queue1):
return len(queue2) + (queue1.index(hap)*2) + 1
if hap == max(queue2):
return len(queue1) + (queue2.index(hap)*2) + 1
while queue and queue2:
if hap1 < hap2:
p = queue2.popleft()
queue1.append(p)
hap1 += p
hap2 -= p
else:
p = queue1.popleft()
queue2.append(p)
hap1 -= p
hap2 += p
answer += 1
if hap1 == hap:
return answer
return -1
# 성공
from collections import deque
def solution(queue1, queue2):
queue1 = deque(queue1)
queue2 = deque(queue2)
answer = 0
hap = sum(queue1 + queue2) / 2
hap1 = sum(queue1)
hap2 = sum(queue2)
queue = queue1 + queue2
answer_max = len(queue1) * 3
if sum(queue1 + queue2) % 2 != 0:
return -1
if hap < max(queue):
return -1
if hap1 == hap:
return 0
if hap == max(queue1):
return len(queue2) + (queue1.index(hap)*2) + 1
if hap == max(queue2):
return len(queue1) + (queue2.index(hap)*2) + 1
while queue and queue2:
if hap1 < hap2:
p = queue2.popleft()
queue1.append(p)
hap1 += p
hap2 -= p
else:
p = queue1.popleft()
queue2.append(p)
hap1 -= p
hap2 += p
if answer == answer_max:
return -1
answer += 1
if hap1 == hap:
return answer
return -1
# 휴..
- 큐.. 너무 어렵다.
반응형
'전.py' 카테고리의 다른 글
[python] 프로그래머스 양궁대회 (0) | 2023.01.18 |
---|---|
[python] 프로그래머스 표 병합 (0) | 2023.01.17 |
[python] 프로그래머스 이모티콘 할인행사 (0) | 2023.01.13 |
[python] 프로그래머스 택배 배달과 수거하기 (0) | 2023.01.12 |
[python] 프로그래머스 개인정보 수집 유효기간 (2) | 2023.01.11 |