728x90
반응형

42서울 6

[42서울] ft_printf 구현 (한 문장으로 구현하는 이진수 보수 연산)

서론과제 이름에서 알 수 있듯이 printf 함수를 구현하는 과제이다. 당연히 printf 함수의 모든 기능을 구현하는 것은 아니고, 문자열 표준 출력과 서식 지정자와 같은 대표적인 기능을 구현하게 된다. 본 과제에서는 va_arg 관련 함수에 대하여 배울 수 있고, 서식 지정자를 어떻게 처리할지에 대해서도 고민해 보며 코딩 실력을 기를 수 있다.구현ft_printf구현한 ft_printf 함수의 메인 로직에 해당하는 두 함수이다. ft_printf 함수에서는 입력받은 문자열을 순서대로 while 루프를 돌아 서식지정자('%')가 아니라면 문자를 하나씩 출력하고, 서식지정자라면 그 뒤에 오는 문자에 따라서 행동을 지정한다. 이때 입력받은 va_list 구조체의 주소를 ft_format_conversion..

[42서울] get_next_line 구현 (메모리 누수 잡기, 구현 tip)

서론42서울 두 번째 과제인 get_next_line에 대한 기록을 남겨 놓으려고 한다. gnl은 fd(파일 디스크립터) 값을 인자로 받아서 파일을 읽고 개행문자 '\n' 단위로 문자열을 잘라서 리턴하는 함수를 구현하는 과제이다. C의 파일 입출력, 정적 변수, 메모리 누수 방지 등에 대한 내용을 배울 수 있는 과제인 것 같다. 본 과제에서는 C의 static 변수(정적 변수)를 하나 사용할 수 있다. 정적 변수는 fd 값에서 버퍼 사이즈만큼 읽은 문자열에서 '\n'을 기준으로 문자열을 반환하고 남은 문자열을 저장하는 데 사용된다.구현get_next_linebackup == 0이라면 정적 변수 backup에 공백 문자열을 할당받는다.버퍼 사이즈만큼 buf에 동적할당받는다.gnl_read_line 함수로 ..

[42서울] Libft 함수 정리와 후기

서론42서울 본과정 첫 번째 과제인 Libft에 대해 정리해보려 한다. Libft는 다양한 기본 함수들을 직접 구현하여 C 언어의 기초를 이해하기 위해 주어지는 과제이다. Libft에서는 문자열 처리, 메모리 할당 및 해체, 리스트 조작 등의 기본적인 작업을 다룬다. 예를 들어, strcpy, strlen, strdup과 같은 문자열 처리 함수들을 구현하고, malloc 및 free 함수를 사용하여 동적 메모리 할당과 해제를 다룬다. 또한 자료구조의 기본인 리스트를 조작하는 함수를 다룬다. 구현해야하는 함수 명세함수 이름프로토타입반환 값 의미설명ft_memsetvoid *ft_memset(void *s, int c, size_t n);메모리 주소 (s)주어진 메모리 영역을 지정한 값 (c)으로 설정한다...

[42서울] push_swap 그리디 알고리즘

서론 2서클 과제인 push_swap에 대해 정리해보려 한다. push_swap은 인자로 받은 숫자들을 두 개의 스택(stack_a, stack_b)을 이용해 최대한 적은 명령어를 사용하여 정렬하는 알고리즘을 구현하는 과제이다. 필자는 push_swap 평가를 처음 갔을 때 그리디 알고리즘을 사용하여 이 과제를 해결할 수 있다는 말을 듣고 매력적으로 느껴 그리디 알고리즘을 선택하게 되었다. push_swap 그리디 알고리즘 그리디 알고리즘은 매 결정마다 그 순간 최적의 결정을 내리는 과정을 반복해 최종적인 해답에 도달하는 알고리즘이다. 제한된 명령어만 사용할 수 있는 push_swap에 어떻게 그리디 알고리즘을 적용시킬 수 있을까? 답은 정렬되어 있지 않은 stack_b의 원소를 정렬된 stack_a로 ..

[42서울] Born2beroot 개념 정리 1

목차 서론 가상머신과 운영체제 사용자 관리 패스워드 정책 설정 호스트 서론 born2berroot(본투비)는 시스템(운영체제) 관리에 관련된 과제이다. 가상머신 개념 및 관련 용어, UFW 서비스, SSH 서비스, 유저 및 그룹 관리, 패스워드 정책 설정, 하드디스크 파티션과 LVM, SUDO, Cron 등에 대해서 배울 수 있다. 42서울의 다른 과제에 비해 코딩이 어렵기 보다는 처음 접하는 개념과 익숙하지 않은 환경에 공부할 것도 많고 은근히 까다로울 수 있는 과제이다. 이 포스팅에서는 본투비를 진행하며 배웠던 개념들에 대해서 정리해보겠다. 명령어가 동작하지 않는다면 앞에 sudo를 추가해보세요. 가상머신과 운영체제 가상머신 동작 원리 가상머신은 하이퍼바이저를 통해 동작 하이퍼 바이저 유형 TYPE ..

[42서울] 2023-2 라피신 후기

2-1학기를 마치고 방학 중 7~8월 한 달 동안 참여했던 42서울 라피신에 대해 후기를 남겨보려 합니다. 42서울? 라피신? 42(Ecole 42)는 프랑스에서 설립된 교육기관으로서 교수, 교재 학비가 없는 교육을 진행합니다. 42는 전 세계적으로 역량을 인정받아 세계 각국으로 캠퍼스를 확장했고, 한국에는 42서울이라는 형태로 들어오게 되었습니다. 라피신은 42서울 본과정 전에 참여자들을 한 달간 본과정의 교육방식에 맞춰 적응시키는 집중교육 과정입니다. 이 기간에는 42서울의 공부 방식대로 공부를 하게 되며, 라피신이 끝난 후에는 지원자들을 종합 평가하여 본 과정에 선발합니다. 자세한 내용은 본문 아래쪽이나 홈페이지를 참고하세요. https://42seoul.kr/seoul42/main/view 42 ..

728x90
반응형