컴공생의 다이어리

[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python) 본문

Development/Algorithm & Coding Test

[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python)

컴공 K 2022. 8. 28. 00:01

[프로그래머스] 두 큐 합 같게 만들기 - 파이썬(Python)

 

 

 

from collections import deque

def solution(queue1, queue2):
    queue1, queue2 = deque(queue1), deque(queue2)
    q1_sum, q2_sum = sum(queue1), sum(queue2)
    max_cnt, cnt = len(queue1) * 3, 0

    while (queue1 and queue2) and max_cnt != cnt:
        if q1_sum == q2_sum:  # 두 큐 합이 같으면 종료
            return cnt
        elif q1_sum > q2_sum:  # queue1의 합이 더 크면 queue1에서 빼기
            temp = queue1.popleft()
            queue2.append(temp)
            q1_sum -= temp
            q2_sum += temp
        else:  # queue1의 합이 queue2보다 작을 때
            temp = queue2.popleft()
            queue1.append(temp)
            q1_sum += temp
            q2_sum -= temp
        cnt += 1
    return -1  # 두 큐 합이 같아지지 않으면 -1 반환

 

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
Comments