$ make
$ ./push_swap 5 4 1 3 2
$ make bonus
$ ./push_swap 5 4 1 3 2 | ./checker 5 4 1 3 2
- INT_MIN ~ INT_MAX 범위의 중복없는 임의의 숫자를 인자로 받는다.
- 첫번째 입력 값은 스택의 맨 위에 있어야 한다.
- 2개의 스택
a
와 b
가 존재한다.
- 아래의 지침을 사용하여 스택을 정렬시켜야 한다.
instructions |
description |
pa (push a) |
b의 맨 위에 있는 첫 번째 요소를 가져와서 a의 맨 위에 놓는다. b가 비어 있으면 아무 것도 하지 않는다. |
pb (push b) |
a의 맨 위에 있는 첫 번째 요소를 가져와서 b의 맨 위에 놓는다. a가 비어 있으면 아무 것도 하지 않는다. |
ss |
sa와 sb를 동시에 사용한다. |
sa (swap a) |
스택 a의 맨 위에 있는 처음 2개의 요소를 교환한다. 요소가 하나만 있거나 없는 경우 아무 작업도 수행하지 않는다. |
sb (swap b) |
스택 b의 맨 위에 있는 처음 2개의 요소를 교환한다. 요소가 하나만 있거나 없는 경우 아무 작업도 수행하지 않는다. |
rr |
ra와 rb를 동시에 사용한다. |
ra (rotate a) |
스택 a의 모든 요소를 1만큼 위로 이동한다. (첫 번째 요소가 마지막 요소로) |
ra (rotate a) |
스택 b의 모든 요소를 1만큼 위로 이동한다. (첫 번째 요소가 마지막 요소로) |
rrr |
rra와 rrb를 동시에 사용한다. |
rra (reverse ra) |
스택 a의 모든 요소를 1만큼 아래로 이동한다. (마지막 요소가 첫 번째 요소로) |
rrb (reverse rb) |
스택 b의 모든 요소를 1만큼 아래로 이동한다. (마지막 요소가 첫 번째 요소로) |