요약: 이 프로젝트를 통해 여러분은 주어진 어떠한 스택에 대하여 제한된 명령어 집합을 가능한 한 적게 사용하여 정렬할 수 있다. 성공적으로 프로젝트를 끝내기 위해서는 다양한 유형의 알고리즘을 조작하고 최적화 된 데이터 정렬에 가장 적합한 솔루션을 선택해야 한다.
Push_swap 프로젝트는 매우 간단하고 효과적인 알고리즘인 정렬에 관한 프로젝트이다. 정수값들의 집합, 2개의 스택 그리고 두 스택을 조작하기 위한 명령어 집합이 주어진다.
목표는? push_swap 이라는 프로그램을 C언어로 작성하는 것이다. 입력 받은 정수 인자들을 정렬하는 push_swap 명령어를 사용하여 가장 작은 프로그램을 계산하고 표준 출력에 출력한다.
쉬워보이죠?
일단 봅시다...
정렬 알고리즘을 작성하는 것은 코더의 인생에서 언제나 가장 중요한의미를 가진다. 이는 여기에서 흔히 복잡도라는 개념과 처음 마주하기 때문이다.
정렬 알고리즘과 그 복잡도는 취업 면접에서 전형적인 질문 중 하나이다. 언젠간 마주칠 날이 있을 것이기 때문에 이번에 이 개념을 보는 것도 좋을 것이다.
이 프로젝트의 목적은 정밀하게 알고리즘을 생각하고, C언어를 사용하여 이를 활용하는 것이다. 특별히 그 기본 알고리즘의 복잡도에 대해서 살펴본다.
값들을 정렬하는 것은 간단하다. 가능한 가장 빠른 방법으로 정렬하는 것은 덜 간단하다. 특히 초기값들의 순서에 따라 가장 효율적인 알고리즘이 다를 수도 있기 때문이다.
push_swap으로 지어야 한다.Makefile을 제출해야 한다. Makefile은 반드시 프로젝트를 컴파일해야 하고 기본적인 rule들을 포함해야 한다. 프로그램이 필요시에만 재컴파일 돼야 한다.libft 폴더와 그 안에 자체 Makefile을 넣어서 제출해라. Makefile은 라이브러리와 프로젝트 모두 컴파일해야 한다.