KAKAO 2022 TECH INTERNSHIP의 문제였다.
문제 난이도는 그렇게 어려워 보이지 않았으나, 최적화가 힘들었다.
1차 시도 : Vector와 Pointer
실제로 Queue를 이용해서 합을 일일히 계산하려면 시간이 많이 걸릴 것이라는 판단.
그래서 Vector에 그대로 다 넣으면서 가리키는 포인터만 옮겨주는 방식으로 구현했다.
하지만 이 방식 또한 5개 정도의 시간초과가 발생했다.
2차 시도
코드를 보다보니 내가 코드를 잘못 짰음을 금세 깨달을 수 있었다.
굳이 while loop 안에서 합을 계속 구할 필요가 있는가?
초기 합은 구해놓고, 옮긴 놈은 빼고 받은 놈은 더하기만 하면 된다!