분류 전체보기 212

so_long Makefile

Makefile 명령어 정리 so_long에서 mlx라이브러리를 컴파일을 해야하기 때문에 새로운 명령어들이 추가된다. @make -C (dir) -C dir Makefile을 계속 읽지 말고 우선은 dir로 이동하라는 것. 순환 make에서 사용됨. @make @가 오면 컴파일 되는 것들이 터미널에서 안 보여짐. $(CC) $(CFLAGS) -c -o $@ $< -c 오브젝트 파일만 만들고 컴파일을 멈춘다. -o 실행 파일 이름을 바꾼다. $(OBJ) -I. -I. 컴파일러에게 현재 디렉토리(.)를 포함하여 헤더 파일을 찾도록 지시. Makefile 기본 문법 Makefile 기본 문법 GNU Make 매뉴얼 : https://www.gnu.org/software/make/manual/html_node/..

42Seoul/so_long 2023.07.27

DFS

깊이 우선 탐색(DFS, Depth-First Search) 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(brach)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법. 보통 DFS는 특정 도시에서 다른 도시로 갈 수 있는지 없는지, 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지 등에서 많이 쓰인다. 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행하는 방법과 유사 넓게(wide) 탐색하기 전에 깊게(deep) 탐색하는 것이다. 모든 노드를 방문 하고자 하는 경우에 이 방법을 선택. 단순 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서 느리다. 깊이 우선 탐..

42Seoul/so_long 2023.07.27

so_long MiniLIbx 작동해보기

인트라에서 요렇게 3개 opengl을 다운 받아서 압출을 풀고 mlx 폴더 안에 넣어준다. 소스 파일 main.c을 만든 후에 밑 코드 작성 #include "mlx.h" int main() { void*mlx_ptr; void*win_ptr; mlx_ptr = mlx_init(); win_ptr = mlx_new_window(mlx_ptr, 500, 500, "mlx 42"); mlx_loop(mlx_ptr); } 컴파일 gcc -Lmlx -lmlx -framework OpenGl -framework AppKit -Imlx main.c -L 명령어 라이브러리가 포함된 디렉토리의 경로 -L(라이브러리가 포함된 경로) -lmlx mlx를 사용하기 위한 문법 -framework OpenGl -framewor..

42Seoul/so_long 2023.07.27

so_long MiniLibx 함수

MLX 라이브러리 윈도우의 제어와 그래픽 작업을 위한 라이브러리. mlx라이브러리 내부의 mlx.h 파일을 인클루드 함으로써 MiniLibX API를 사용. cc -L[mlx 폴더 경로] -lmlx -framework OpenGL -framework AppKit *.c MiniLibx 함수 1. mlx_init void * mlx_init(void) 나의 소프트웨어와 OS의 디스플레이를 연결해주는 함수. 사용법 #include "mlx.h" int main() { void*mlx_ptr; mlx_ptr = mlx_init(); } 2. mlx_new_window void * mlx_new_window ( void mlx_ptr, int size_x, int size_y, char *title ); 디스플..

42Seoul/so_long 2023.07.27

so_long MiniLibx 간단 소개

영상 42 인트라에 있는 Minilbx 소개 학생들을 위한 간단한 그래픽 인터페이스 작동 방식 #include void * mix_int (); //mac에서 이렇게 쓴다고 함 man 이용하여 보기 man /usr/share/man/man3/mlx.1 번역 Google 번역 NAME MiniLibX - Simple Graphical Interface Library for students SYNOPSYS #include void * mlx_init (); DESCRIPTION MiniLibX is an easy way to create graphical software, without any X- Window/Cocoa programming knowledge. It provides simple window..

42Seoul/so_long 2023.07.27

push_swap bonus

보너스는 우리가 push_swap 할 때 잘 나오는지 확인한 checker를 구현하는 것임. 쉽게 생각해서 하면 되는 것들 뭐 있냐 push_swap에서 한 인자값 처리 코드 들고오기 get_next_line 들고와서 인자 읽어주기 그 인자 즉 명령어 일텐데 거기에 맞게 움직이면 됨. 입력값이 없으면 이제 a스택이 정렬되었는지 확인 그리고 b스택에 뭐가 없는지 확인 잘 되었으면 OK 아니면 KO 끝 이 3가지만 알아도 잘하는 사람이라면 하루 안에 다 할 것 같아용 -jaeyojun-

42Seoul/push_swap 2023.06.26

push_swap 퀵소트 피봇 구하기

퀵소트 공부 ‘찰스 앤터니 리처드 호어(Charles Antony Richard Hoare)’가 개발한 정렬 알고리즘 퀵 정렬은 불안정 정렬 에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. 분할 정복 알고리즘의 하나로, 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법 합병 정렬(merge sort)과 달리 퀵 정렬은 리스트를 비균등하게 분할한다. 분할 정복 방법 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 분할 정복 방법은 대개 순환 호출을 이용하여 구현한다. [알고리즘] 퀵 정렬(quick sort)이란 - Heee's Development Blog [알고리즘] 퀵 정렬(quick sort)이란 - Heee's..

42Seoul/push_swap 2023.06.26

push_swap 들어가기 전, 데이터 전처리, 알고리즘 생각

이 페이지에서는 push_swap 알고리즘 전에 데이터 전처리와 과제에서 요구하는 것을 볼 것임. 과제 설명 과제 설명 → 쉽게 말해서 스택 a,b가 주어지는데 입력값을 스택 a에 다 넣고 스택 b를 통해서 정렬을 해야하는 과제. 정렬을 해야하는데 조건이 있음 sa : swap a - 스택 a의 top에 위치한 두 개의 원소의 순서를 맞바꿉니다. 스택 a가 비어있거나 원소가 1개만 있을 때는 아무 동작도 하지 않습니다. sb : swap b - 스택 b의 top에 위치한 두 개의 원소의 순서를 맞바꿉니다. 스택 b가 비어있거나 원소가 1개만 있을 때는 아무 동작도 하지 않습니다. ss - sa와 sb를 동시에 수행합니다. pa : push a - 스택 b의 top에 위치한 원소 한 개를 스택 a의 top..

42Seoul/push_swap 2023.06.26