LIT_14 2022 KAKAO TECH INTERNSHIP

여재우·2023년 11월 16일
0

LIT

목록 보기
15/21

LIT(Learn I Today) 내가 오늘 배운 것들에 대한 정리


프로그래머스 기출문제에 있는 2022 KAKAO TECH INTERNSHIP 문제를 정리해 보고자 한다.


두 큐 합 같게 만들기

레벨 : 2
프로그래머스-코딩테스트 연습

느낀점: 문제 설명에 선입선출방식의 큐를 사용한다고 주어지기도 했고, 문제의 설명이나 알고리즘 적인 부분도 크게 없어 어렵진 않았다.

나의 풀이

from collections import deque

def solution(queue1, queue2):
answer = 0
queue1 = deque(queue1)
queue2 = deque(queue2)
tq1 = sum(queue1)
tq2 = sum(queue2)

# 두 큐의 길이보다 긴 횟수는 나올 수 없다고 생각함
limit = len(queue1) + len(queue2)

# 전체 원소의 합이 짝수가 아니면 두 큐의 합을 같게 만들 수 가 없다.
if (tq1 + tq2) % 2 == 1:
    return -1

while tq1 != tq2:
    if answer >= limit:
        return -1
    
    while queue2 and tq1 < tq2:
        temp = queue2.popleft()
        queue1.append(temp)
        answer += 1
        tq1 += temp
        tq2 -= temp
    while queue1 and tq2 < tq1:
        temp = queue1.popleft()
        queue2.append(temp)
        answer += 1
        tq1 -= temp
        tq2 += temp
            
return answer
profile
꾸준히 학습하고 기록하기 위한 log

0개의 댓글