Chapter 1 Foreword 우리는 간단한 2D게임을 mlx라이브러리를 활용하여 만들어야 한다. 2D게임을 만들기 위해선, 맵 타일, 타일셋, 스프라이트, 스프라이트 시트 등이 필요하다. 이곳에 그런게 있으니 참고하면 좋다. 다른 픽셀아트 사이트도 둘러보길 바란다. Chapter 2 Goals so_long을 통해 그래픽 디자인 프로젝트를 해볼 수 있고, 창 띄우기, 색상, 이벤트 설정하기, 모양 채우기 등과 같은 분야에서 능력이 향상 될 것이다. Chapter 3 Common Instructions mlx 라이브러리에 대해 알아야한다. so_long에서 주로 사용하는 mlx라이브러리 함수는 다음과 같다. mlx_init mlx_new_window mlx_xpm_file_to_image mlx_pu..
Chapter 1 Foreword UNIX 대화식, 시분할처리 시스템용 운영체제이다. 오늘날의 유닉스 시스템은 다양한 운영체제를 만드는 데 활용되고 있다. 현재는 많이 줄어들었지만, 대표적으로 macOS가 남아있다. 유닉스는 C언어로 작성되어, 다양한 플랫폼에 이식이 가능하고, 오픈 소스로 누구나 사용할 수 있다. 그리고 여러 사용자가 동시에 사용 가능하며, 여러 프로그램도 동시에 실행될 수 있고, 이를 관리하는 su(super user)가 존재한다. 유닉스의 구조는 커널, 쉘 등으로 구분할 수 있다. 커널(Kernel) 유닉스 운영체제의 핵심 컴퓨터의 모든 자원을 관리하는 핵심 프로그램 파일 시스템 관리 장치 관리 프로세스 관리 메모리 관리 쉘(Shell) 사용자 인터페이스 사용자와 커널 사이의 중간자..
Chapter 1 Introduction push_swap 과제는 정렬해야하는 int값들과 두개의 스택, 스택을 조작하는 명령어 집합이 주어진다. 이 때, 최소한의 명령어들을 이용하여 int형 인자들을 정렬하는 방법을 계산하고, 사용된 명령어들을 표준 출력해야 한다. Chapter 2 정렬 알고리즘을 사용하면 복잡도라는 개념을 마주하게 된다. 여기서 복잡도란 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. 알고리즘에서의 시간복잡도는 주로 빅-오(Big-O) 표기법을 사용하는데, 이 표기법은 낮은 차수의 항을 제외시키는 방법이다. 예를 들면 크기 n의 모든 입력에 대한 알고리즘에 필요한 시간이 최대 5n^3 + 3n이라면 이 알고리즘의 시간복잡도는 O(n^3)이라고 할 수 있다. 시간복잡도는..