iijung / push_swap

제한된 지침 세트를 사용하여 스택 정렬

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

push_swap

Usage

$ make
$ ./push_swap 5 4 1 3 2
$ make bonus
$ ./push_swap 5 4 1 3 2 | ./checker 5 4 1 3 2

Input

  • INT_MIN ~ INT_MAX 범위의 중복없는 임의의 숫자를 인자로 받는다.
  • 첫번째 입력 값은 스택의 맨 위에 있어야 한다.

Stack

  • 2개의 스택 ab가 존재한다.
  • 아래의 지침을 사용하여 스택을 정렬시켜야 한다.

Instructions

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만큼 아래로 이동한다. (마지막 요소가 첫 번째 요소로)

About

제한된 지침 세트를 사용하여 스택 정렬


Languages

Language:C 83.7%Language:Makefile 16.3%