https://school.programmers.co.kr/learn/courses/30/lessons/118667
from collections import deque
def solution(queue1, queue2):
answer = -1
N = len(queue1)
s1, s2 = sum(queue1), sum(queue2)
target = (s1 + s2) // 2
if (s1 + s2) % 2 == 1:
return -1
queue1 = deque(queue1)
queue2 = deque(queue2)
#총 3N번의 시도 끝에 목표 달성 실패하면 그냥 실패임
for i in range(N*3):
#목표가 달성됐다면 answer는 i임
if s1 == target:
answer = i
break
#target보다 합계가 큰 곳을 popleft해서 작은곳에 넣어주기
if s1 > target:
num = queue1.popleft()
s1 -= num
queue2.append(num)
s2 += num
else:
num = queue2.popleft()
s2 -= num
queue1.append(num)
s1 += num
return answer
항상 방심하지 말고 테스트케이스를 만들어보자. 시간 남는다면 말이다.