[프로그래머스/python] 두 큐 합 같게만들기
2022. 8. 23. 16:08ㆍ알고리즘/프로그래머스
반응형
두 큐 합 같게 만들기
2022 KAKAO TECH INTERNSHIP
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
queue1, queue2 을 합치고 index 이동을 하면서 queue1의 합에서 해당 인덱스의 값을 더하고 빼서 목표값이 도달하게 했습니다.
가장먼저 총합이 홀수인 경우 2개로 나눌 수 없습니다.
두 큐를 합쳐서 [queue1, queue2] 의 상태로 만든 뒤 queue1의 합은 sum[start: end]로 나타낼 수 있습니다.
queue1의 합이 목표값보다 크다면 start 인덱스 값을 합에서 빼고
queue1의 합이 목표값보다 작다면 end 인덱스 값을 더하면서 queue1의 합을 조절합니다.
결국 목표 값에 도달했을 시 셈을 진행한 횟수가 답입니다.
그 외에는 start가 end를 넘어가는 경우로 성립할 수 없는 경우로 -1를 리턴합니다.
풀이코드
def solution(queue1, queue2):
answer = -2
sum_val = sum(queue1)+sum(queue2)
if sum_val%2:
return -1
else:
value = sum_val//2
count = 0
total_q = queue1 + queue2
start = 0
end = len(queue1)-1
count = 0
sum_queue = sum(queue1)
while(sum_queue != value and start <= end):
if sum_queue>value:
sum_queue-=total_q[start]
start+=1
count+=1
else:
end+=1
if end >=len(total_q):
return -1
sum_queue+=total_q[end]
count+=1
if start>end:
return -1
else:
return count
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/python] 삼각달팽이 (0) | 2022.08.23 |
---|---|
[프로그래머스/python] 배달 (0) | 2022.08.23 |
[프로그래머스/python] 추석트래픽 (0) | 2022.08.23 |
[프로그래머스/javascript] 3진법 뒤집기 (0) | 2022.08.15 |
[프로그래머스/javascript] 예산 (0) | 2022.08.15 |