Taking baby-developer steps

22.05.05.push_swap - 정렬 알고리즘 최적화-5 본문

Logs/학습 log

22.05.05.push_swap - 정렬 알고리즘 최적화-5

Surin Lee 2022. 5. 5. 13:01

새로 알게된 사실이 있다! 5개 이하의 input 기준에서는 과제에서 요구하는 최소 기준이 또 다르다는 것이다. 3개 이하의 input이 들어온 경우, 3개 이하의 명령어를 사용하고, 5개 이하인 경우엔 12개 이하를 사용해야한다. 따라서 이 경우에는 a_stack에서만 정렬하는 sort_a_stack만을 호출하게 했고 결과는 다음과 같다.

본래 b_stack으로 옮기고 시작하던 sort_stacks()함수를 호출하는 것보다 명령어가 적어졌지만, Input이 3이하인 경우에 좀 더 최적화 해야하는 필요성이 생겼다.=>후에 sort_small 함수를 만들어 따로 최적화를 하기로 한다.

 

 지난 포스팅에 이어 계속해서 sort_big에서 300개 이상의 input이 들어오는 경우를 최적화한다.

현재 상태

현재 상태에서 a_stack의 갯수는 101개여야하는데 a_stack에서 현재 counts가 100으로 뜨고 있다. 일단은 +1해서 넘어가고 정렬 구현부터 하도록 한다.

a_stack에 정렬된 ㄱ을 b_stack으로 옮긴 모습

현 상태까지 쓰인 명령어는 2971개이다.

 

이제 ㄷ 구간을 a_stack에 분리 해낼 차례인데, 가장 많은 명령어가 소요 될 것으로 예상 된다.

 

Comments