슈뢰딩거의 고등어

[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 (Python3) 본문

알고리즘

[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 (Python3)

슈뢰딩거의 고등어 2022. 11. 13. 16:01

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

 

프로그래머스

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

programmers.co.kr

[풀이방법]

 

 

 

def solution(queue1, queue2):
    if (sum(queue1) + sum(queue2)) % 2 != 0: return -1
    total = (sum(queue1) + sum(queue2)) // 2
    q1 = sum(queue1)
    q2 = sum(queue2)
    idx1, idx2, t = 0, 0, len(queue1)
    
    while idx1 < 2*t and idx2 < 2*t and q1 != q2:
        if(q1 > q2):
            # q1 pop, q2 push
            no = queue1[idx1]
            q1 -= no
            q2 += no
            queue2.append(no)
            idx1+=1
            
        if(q1 < q2):
            # q2 pop, q1 push
            no = queue2[idx2]
            q2 -= no
            q1 += no
            queue1.append(no)
            idx2+=1
        
    if q1 == q2:
        return idx1+idx2
    
    return -1
Comments