99클럽 코테 스터디 3기 8일차 TIL - 118667 두 큐 합 같게 만들기
118667. 두 큐 합 같게 만들기 / c++ / level2 / 1시간+
문제 및 코드 (링크)
접근 방식
큐
- 두 큐의 원소를 같게 만들 수 있다면, 그 최소 이동 횟수를 반환하고, 같게 만들 수 없다면 -1을 반환하는 문제
- 우선 각 큐의 합 (sum1, sum2) 를 구한다.
- 그리고 sum1 == sum2 가 될 때까지 count++ 하며 각 큐의 원소를 반대 큐로 옮기며 sum1 과 sum2 를 갱신한다.
- 만약 sum1 == sum2 가 되면 count를 반환
- 만약 count > maxCount (queue1.size() * 2 + 2)면 -1을 반환
- 해결
생각해 볼 점
- 처음엔 두 큐를 붙여 이중 포인터로 풀어볼까 했는데 실패했다.
- 풀다가 시간이 오래 걸려서 예전에 풀었던 코드를 참고했다.
- 원소의 삽입 삭제를 다 하지 않고, 삽입만 하고 삭제는 index만 증가시키는 방법을 쓰니 (당연하게도) 직접 삭제하는 것보다 시간 효율이 올랐다.
해시태그
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL