libft과제는 자신만의 라이브러리(libft.a)를 만드는 프로젝트이다 향후 42seoul과제를 진행해나가면서 <stdio.h> <stdlib.h> 같이 외부 헤더 안에 포함된 함수들을 사용하여 프로그램을 작성하는 것이 아닌 이번 과제를 진행하면서 자주
libft구현 함수 문자열 관련 함수들 * 문자열
연결 리스트란 자료구조의 한 종류로 각각의 데이터들을 보관하고있는 변수들이 자신의 다음 노드를 가르키고 있는 자료구조를 의미한다 배열의경우 데이터가 메모리상에 순차적으로 존재하여 배열 중간에 값을 삽입하고 삭제하는것에 있어서 불편함이 있지만 연결 리스트의 경우 중간에
우리가 일반적으로 사용하는 함수들은 보통 인자가 정해져서 들어오게된다ex.) putchar(char c), putstr(char \*s)그러나 printf 함수를 사용했던 기억을 떠올려보면 사용하고 싶은 만큼 인자를 넣고 사용 했음을 알 수 있다ex.) printf("
일반적으로 변수들은 변수가 선언된 함수 밖으로 벗어나게 되면 변수가 소멸되게 된다 단 변수 앞에 static키워드를 붙여서 선언하게 되면 해당 함수 호출이 끝난 후에도 변수가 사라지지않고 재호출 되었을 시 그 값을 유지한채로 함수가 동작된다Dangling Pointer
born2beroot 과제는 VirtualBox를 통해서 가상머신을 만드는 프로젝트이다 주어진 요구사항에 따라 여러가지 규칙들을 적용하고(sudo , ufw, ssh 등) bonus과제에서는 wordpress를 이용하여 간단한 웹사이트를 만들어보게 된다가상머신이란 실제
so_long과제는 외부 그래픽 라이브러리를 이용하여 간단한 2D게임을 만들어 보는 과제입니다 수집품을 모아서 포탈로 탈출하면되는 간단한 게임이죠 ! MinilibX minilibx는 과제에서 주어지는 그래픽관련 함수들이 모아져있는 라이브러리이다 mlx_init()
so_long과제는 map에서 수집품을모아 포탈로 탈출하면되는 게임을 만드는 것이다map은 5가지 요소로 구성되어져 있다0(빈공간) : 플레이어가 지나다닐 수 있는 빈 공간이다1(벽) : 플레이어가 지나다닐 수 없게 막혀져 있는 벽을 의미한다C(수집품) : 플레이어가
연결리스트를 생성 후 초기값을 설정해준다head = NULLsize = 0;node를 생성 후 초기값을 설정해준다next = NULL;prev = NULL;value = value;연결리스트의 맨 마지막(tail)에 새로운 노드를 추가해준다연결 리스트의 맨 앞(head
이번 과제에서는 스택에 있는 데이터를 한정된 명령어를 이용하여 최대한 적은 횟수 내에 정렬하는 것을 목표로 합니다. 성공하기 위해서는 다양한 정렬 알고리즘을 조작해 보고, 최적화된 데이터 정렬에 가장 적합한 알고리즘을 선택하여야 합니다.스택 a와 b가 있습니다.처음 시
sa sb(swap_stack) 플래그를 이용하여 sa sb키워드를 구현했다 ss(swapstackall) swapstack 함수를 stacka stack_b 두번 호출하여 구현하였다 pa pb(push_stack) flag를 이용하여 pa pb를 구현하였다 ra
quick_sort(퀵 정렬)은 정렬 알고리즘 중 한 종류이다 퀵정렬은 최악의 경우에는 O(n2)번의 비교를 수행하지만 평균적으로 O(n log n)번의 비교를 수행한다 추가적인 공간이 필요하지 않다 퀵 정렬은 기존에 할당된 배열에서 swap만 이루어지기 때문에 추가적
퀵 정렬은 기본적으로 배열에서 정렬하는것을 가정하고 정렬한다 그러나 push_swap과제에서는 stack을 이용해서 정렬을 진행해야 하는데 고려해야할 점들이 있다정렬을 하며 이용할 수 있는공간이 Stack A, Stack B 두개만 존재한다각 Stack의 Top, Bo
rrr을 하는 이유는 기존에 스택에 들어있는 값들 때문에 실행을 하게 되는데 처음 quick sort호출 시에는 기존에 스택에 들어있는 값이 없기때문에 rrr을 실행하지 않아도 된다 단 이때는 정렬순서가 달라지기때문에 pivoting후 스택을 div하는 과정에서 위치가
<fcntl.h>open함수는 path : oflag :oflag 및 open함수 관련 설명open, close, read, write,malloc, free, perror,strerror, access, dup, dup2,execve, exit, fork, pi
pipex flow chart
프로세스 프로세스란 실행 중인 프로그램을 의미한다 프로그램과 프로세스의 차이는 프로그램은 보조 기억장치에 존재하며 실행을 기달리는 데이터의 모음이라면 프로세스는 이러한 프로그램이 메모리에 적재되면 생명이 있는 프로세스가 됩니다 부모 프로세스 자식 프로세스 프로세스가
usleep usleep() 함수는 호출하는 스레드의 실행을 일시 중단하며, 마이크로초(microseconds)가 경과하거나 스레드에게 신호가 전달되어 신호 처리 함수를 호출하거나 프로세스를 종료할 때까지 기다립니다. useconds_t useconds: 정지하고싶
업로드중..
컨텍스드 스위칭(context switch)
readline 함수는 터미널에서 한 줄을 읽고 반환합니다 이때 prompt를 프롬프트 앞쪽에 표시해줍니다 반환되는 문자열은 malloc으로 할당되었으므로 사용 후 free해주어야 합니다 반환되는 문자열은 개행이 포함되지 않은상태로 반환됩니다const char \*pr
라피신을 하면서 기록된 시간이다 밥먹는 시간을 제외하고 클러스터(공부하는 장소)에 있는 시간만 기록되어져있는데 한달동안 정말 열심히 참여하였다라피신 간 있었던 성적이다 처음 시험에서는 64점으로 시작하였지만 점점 발전하여 마지막 시험에는 90점이라는 만족할 만한 점수를
raycasting raycating 이란 레이캐스팅(raycasting)은 2차원 맵을 3차원으로 원근감있게 만드는 렌더링 기술입니다. (실제로 raycasting을 이용해 2d map을 3d로 변환한 모습) raycasting의 특징 레이캐스팅은 스크린의 모든
sprite란 일반적으로 표시되는 화면과 별개로 움직일 수 있는 작은오브젝트를 일컫는다. sprite 구현 방법 1. 레이케스팅을 진행하며 계산된 수직선의 길이를 버퍼에 저장한다 2. 스프라이트들의 위치와 유저의 상대거리를 계산한다 상대거리는 플레이어의 위치에서