[프로그래머스] 두 큐합 같게 만들기

박형진·2022년 8월 29일
0

https://school.programmers.co.kr/learn/courses/30/lessons/118667


1. 코드

from collections import deque


def solution(queue1, queue2):
    q1, q2 = deque(queue1), deque(queue2)
    sum1, sum2 = sum(queue1), sum(queue2)

    if (sum1 + sum2) % 2 != 0:
        return -1

    cnt = 0
    while True:
        if cnt == 3 * len(queue1):
            return -1

        if sum1 == sum2:
            return cnt
        elif sum1 > sum2:
            v = q1.popleft()
            q2.append(v)
            sum1 -= v
            sum2 += v
        else:
            v = q2.popleft()
            q1.append(v)
            sum2 -= v
            sum1 += v
        cnt += 1

2. 후기

sum1, sum2 크기를 비교한 후 적절한 큐에 append, popleft를 활용한다.

profile
안녕하세요!

0개의 댓글