스택 a에는 중복되지 않는 랜덤 개수의 숫자
스택 b는 빈 스택
스택 a를 오름차순으로 정렬
sa: a의 맨 위 2개 요소를 스왑sb: b의 맨 위 2개 요소를 스왑ss: sa와 sb 동시에 실행pa: b의 맨 위 요소를 a의 맨 위에 푸시pb: b의 맨 위 요소를 a의 맨 위에 푸시ra: a의 모든 요소를 한 칸씩 위로 밀어올림rb: b의 모든 요소를 한 칸씩 위로 밀어올림rr: ra와 rb를 동시에 실행rra: a의 모든 요소를 한 칸씩 아래로 밀어내림rrb: b의 모든 요소를 한 칸씩 아래로 밀어내림rrr: rra와 rrb를 동시에 실행\n으로 구분하여 콘솔에 출력Error\n를 stderr에 표시"123 3 0" 2 5pb, 아니면 rapb 후 b 안에서 작은 피봇보다 큰 값은 rbrb한 만큼 rrb해서 작은 피봇보다 큰 값을 위로 올리기 (100개 이하에서는 이 과정 생략)(100개 이하인 경우 바로 b에서 가장 큰 값을 찾아서 rb 또는 rrb 후 pa로 모두 옮기고 끝냄)
1. 1차 정렬의 각 3등분 과정에서 작은 피봇보다 큰 수들에 대해 3등분 정렬 (rb rrb pa)
2. b에는 2차 정렬 후 가장 작은 값만 남으므로 그만큼의 수를 pa
(이때 한 덩어리의 크기가 100보다 크면 2번 없이 3개 이하로 남을 때까지 반복 3등분)
3. 남은 3개 이하의 값을 pa로 다 꺼냄
👉 반복 후 모든 값은 a에 대충 오름차순으로 쌓임
ra 또는 rra한 뒤 pbpa3: 3회5: 12회100: 700 / 900 / 1100 / 1300 / 1500500: 5500 / 7000 / 8500 / 10000 / 11500100개, 500개 테스트 점수를 더해서 6점 이상이어야 통과
터미널 난수 생성
ruby -e "puts (1..500).to_a.shuffle.join(' ')"
https://www.notion.so/push_swap-c15e62229b9541d78fadec4d6aae8b50
push_swap 비주얼라이저
테스터