728x90

우선 list 로 접근했고 시간초과가 나서 deque를 이용했다. 그래도 시간 초과가 나서 answer 값을 임의로 변경 해주었지만 그래도 시간 초과가 났다. 생각을 해보니 매번 deque 의 sum 을 구해줘야 해서 sum 을 변수로 지정해주고 시간 초과는 나지 않았다. 다른 사람의 풀이를 answer 을 q1의 길이의 3배 정도로 해주는 것 같다.

 

from collections import deque
 
def solution(q1, q2):
    answer = 0
 
    total = sum(q1) + sum(q2)
 
    sum_q1 = sum(q1)
    sum_q2 = sum(q2)
 
    q1 = deque(q1)
    q2 = deque(q2)
 
 
    while True:
        if total%2!=0:
            return -1
        if answer>250000:
            return -1
 
 
        if sum_q1==sum_q2:
            return answer
 
        if sum_q1>sum_q2:
            q2.append(q1[0])
            sum_q1 -= q1[0]
            sum_q2 += q1[0]
 
            q1.popleft()
            answer+=1
 
        if sum_q2>sum_q1:
            q1.append(q2[0])
            sum_q2 -= q2[0]
            sum_q1 += q2[0]
 
            q2.popleft()    
            answer+=1
 
 
 
 
 
 
 
 
    return answer
728x90

+ Recent posts