문제
https://school.programmers.co.kr/learn/courses/30/lessons/118667
풀이
https://github.com/nowChae/algorithm/blob/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/118667.%E2%80%85%EB%91%90%E2%80%85%ED%81%90%E2%80%85%ED%95%A9%E2%80%85%EA%B0%99%EA%B2%8C%E2%80%85%EB%A7%8C%EB%93%A4%EA%B8%B0/%EB%91%90%E2%80%85%ED%81%90%E2%80%85%ED%95%A9%E2%80%85%EA%B0%99%EA%B2%8C%E2%80%85%EB%A7%8C%EB%93%A4%EA%B8%B0.py
처음엔 단순히 두 큐의 합을 비교해서 큰 합을 가진 큐에서 pop하고, 다른 쪽에 insert를 반복해가면서 합이 같아지는 때를 찾도록 구현하였다. while 문으로 반복하다보니 두 큐의 합을 같게 만들지 못하는 경우에 조건을 넣어 break 하도록 구현하였지만 append와 pop 때문인지 시간 초과가 발생하였다.
append와 pop을 사용하지않고 어떻게 구현할 수 있을 지 생각해보다가 두 큐를 합해 하나의 배열로 만들고, 포인터를 옮겨가면서 더하거나 빼면 시간을 줄일 수 있을 것이라는 생각이 들었다.

def solution(queue1, queue2):
start = 0
end = len(queue1) - 1
total_sum = sum(queue1) + sum(queue2)
half = total_sum / 2
total_list = []
sum_result = 0
if sum(queue1) > sum(queue2):
total_list = queue1 + queue2 + queue1
sum_result = sum(queue1)
else:
total_list = queue2 + queue1 + queue2
sum_result = sum(queue2)
result = 0
state = False
for i in range(len(total_list) - 1):
if sum_result == half:
state = True
return result
if sum_result > half:
sum_result -= total_list[start]
start += 1
result += 1
elif sum_result < half:
end += 1
sum_result += total_list[end]
result += 1
if not state:
result = -1
return result