본문 바로가기
프로그래머스 C++

프로그래머스 두 큐 합 같게 만들기 C++

by Srff5123 2025. 1. 8.
728x90

 

길이가 같은 두 개의 큐가 주어진다.

하나의 큐를 골라 원소를 추출하여, 다른 큐에 집어 넣는 작업을 한다.

위의 작업을 통해 두 개의 큐에 있는 원소의 합이 같도록 만든다.

 

이때 필요한 작업의 최소 횟수를 구해 리턴하며

큐는 먼저 집어 넣은 원소가 먼저 나오는 선입 선출 구조로

queue1 에서 첫번쨰 원소가 추출되어 옮겨진다면 queue2의 뒷부분에 들어가야함

 

두 큐의 원소의 합이 같아질 수있는 방법이 없다면 -1을 리턴한다.

 

numeric에 있는 accumulate함수를 이용해 각 큐의 원소 합을 구해주고

선입선출 구조를 가진 큐의 특성상, 투포인터를 사용하여 효율적인 접근을 하였다

그 다음 조건이 같아 질때 까지 원소를 옮기며 반복하고

이동 횟수를 제한하여 그 안에 같아지지 않는다면 불가능으로 판단하고 -1을 리턴해주었다. 

 

728x90