


나의 코드
from collections import deque
def solution(queue1, queue2):
answer = 0
queue1 = deque(queue1)
queue2 = deque(queue2)
limit = len(queue1)*4
while True:
if sum(queue1) == sum(queue2):
break
elif sum(queue1) > sum(queue2):
queue2.append(queue1.popleft())
answer+=1
elif sum(queue2) > sum(queue1):
queue1.append(queue2.popleft())
answer+=1
if answer==limit:
answer = -1
break
print(answer)
return answer
solution([3, 2, 7, 2], [4, 6, 5, 1])

흑흑 타임 아웃이 떠버린다..
수정코드
from collections import deque
def solution(queue1, queue2):
answer = 0
queue1 = deque(queue1)
queue2 = deque(queue2)
limit = len(queue1)*4
queue1_sum = sum(queue1)
queue2_sum = sum(queue2)
total = queue1_sum + queue2_sum
#만약 두 리스트 합이 짝수가 아니면 같게 만들수 없음...
if total%2 != 0:
return -1
while True:
if queue1_sum > queue2_sum:
pop_value = queue1.popleft()
queue2.append(pop_value)
queue1_sum -= pop_value
queue2_sum += pop_value
answer+=1
elif queue2_sum > queue1_sum:
pop_value = queue2.popleft()
queue1.append(pop_value)
queue1_sum+=pop_value
queue2_sum-=pop_value
answer+=1
else:
break
if answer==limit:
answer = -1
break
print(answer)
return answer
solution([3, 2, 7, 2], [4, 6, 5, 1])
점점 조건이 까다로워진다 ... 흐흐흐흑
'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글
| 연속된 부분 수열의 합 (0) | 2023.06.04 |
|---|---|
| 메뉴 리뉴얼 (0) | 2023.06.03 |
| 택배상자 (0) | 2023.05.30 |
| [1차] 캐시 (0) | 2023.05.29 |
| 행렬의 곱셈 (0) | 2023.05.29 |