2022 KAKAO TECH INTERNSHIP - 118667. 두 큐 합 같게 만들기
[Lv. 2]
https://school.programmers.co.kr/learn/courses/30/lessons/118667
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
deque를 이용해 greedy하게 풀이하면 되었던 문제.
주의할 점은, 반복문 안에서 sum()
을 이용하면, TLE가 날 수 있다는 것!
from collections import deque
def solution(queue1, queue2):
queue1 = deque(queue1)
queue2 = deque(queue2)
# 홀수면 절반 불가
total = sum(queue1)+sum(queue2)
if total % 2 == 1:
return -1
S = sum(queue1)
for i in range(len(queue1)*4):
if S == total/2:
return i
elif S > total/2:
a = queue1.popleft()
queue2.append(a)
S -= a
else:
a = queue2.popleft()
queue1.append(a)
S += a
return -1