42SEOUL 24

[push_swap]

복잡도 (Complexity) 알고리즘 성능 분석을 위한 방법 시간 복잡도와 공간 복잡도가 있다. 시간 복잡도 (Time Complexity) 알고리즘을 실행할 때, 실행된 명령문의 실행 빈도수 (연산의 횟수) -> 실행 시간으로 할 경우 OS, IDE, 플랫폼에서 동일한 결과가 나오지 않는다. Best case : 최소 리소스(시간 복잡도) 사용량 Worst case : 최악 리소스(시간 복잡도) 사용량 Average case : 평균 리소스(시간 복잡도) 사용량 공간 복잡도 (Space Complexity) 알고리즘이 완전히 실행될 때까지 필요한 저장 공간 - 시간 복잡도와 공간 복잡도는 반비례하는 경향이 있어 알고리즘의 성능을 판단할 때는 시간 복잡도 위주로 판단한다. 빅오 표기법 (Big-O no..

42SEOUL 2022.07.03

[minitalk] 개념정리

Unix Signal을 이용해 Client와 Server 사이에 Communication 프로그램 시그널 (SIGNAL) 유닉스 계열 운영체제에서 쓰이는 Software interrupt process에 특정 이벤트가 발생했을 때 신호를 비동기적으로 보내는 것 - Signal을 받은 프로세스는 Signal에 따른 미리 지정된 기본 동작(default action)을 수행할 수 있고, 사용자가 미리 지정해 놓은 함수에 의해 무시하거나 특별한 처리를 할 수 있다. ex) 리눅스에서 [Ctrl + c] || [Ctrl + z]를 누르면, 프로그램이 강제종료된다. -> 프로그램이 실행중에 개입해 강제로 종료시킨 것 즉, 예외상황이 발생했을 때 신호가 가고, 운영체제에서 이를 캐치하여 해결을 위한 행동을 취한 것..

42SEOUL 2022.06.26

[born2beroot] 서브젝트 설정

sudo 설정 #sudo 설치여부 확인 dpkg -l sudo apt-get update //패키지 목록 업데이트 apt-get install sudo visudo //sudoer 파일 접근해서 옵션 설정 Defaultsauthfail_message="원하는 에러메세지" #권한 획득 실패 시 (sudo 인증 실패 시) Defaultsbadpass_message="원하는 에러메세지" #sudo인증 비번 실패 시 Defaultslog_input #sudo명령어 실행했을 때 입력된 명령어 log로 저장 Defaultslog_output #sudo명령어 실행했을 때 출력 결과를 log로 저장 Defaultsrequiretty #sudo명령어 실행했을 때 tty강제 Defaultsiolog_dir="/var/lo..

42SEOUL 2022.06.17

[born2beroot] Virtual Box 세팅하기

1. 새로만들기 2. 가상 머신 기본 설정 3. 메모리 크기 설정 초록색 범위 내에서 설정 기본값 선택했다. 4. 가상 하드디스크 선택 5. 가상 하드 디스크 파일 종류 선택 VDI : Virtual Box에서만 사용 가능한 포맷 방식 VHD : Virtual Box, Hyper-V, Xen에서 사용 가능한 포맷 방식 VMDK : Virtual Box, VMware Player에서 사용 가능한 포맷 방식 6. 가상 하드디스크 크기 선택 동적 할당 : 디스크에 데이터 저장될 때 크기 자동 증가 공간 낭비를 줄일 수 있지만, 속도가 느리다. 고정 크기 : 디스크 크기 고정 속도는 빠르지만 공간 낭비가 있을 수 있다. 7. vid 위치 및 크기 설정 8. 기본 설정 완료 9. Debian 설치 https://..

42SEOUL 2022.06.04

[born2beroot] 개념 정리

가상 머신 (Virtual Machine) 물리적 컴퓨터와 동일한 기능을 제공하는 소프트웨어 컴퓨터 가상머신은 물리적 컴퓨터처럼 실행되고 작동하는 컴퓨터 파일 하나의 물리 서버에서 여러개의 운영체제를 구동할 수 있도록 하는 기술 즉, 컴퓨터 안의 컴퓨터 가상머신 사용 이유 다른 운영체제를 사용해야 하는경우 비용 절감 간편함과 속도 -> 새로운 환경을 준비하는것보다 간편하고 빠름 하이퍼 바이저 호스트 컴퓨터에서 다수의 운영체제를 동시에 운영하기 위한 논리적 플랫폼 하드웨어에서 리소스를 사용해 가상머신을 생성하고, 구동하는 소프트웨어 ex) vmware, virtual box Host / Guest로 구성됨 Host : 하이퍼바이저가 탑재된 물리적 머신 Guest : 하이퍼바이저로 인해 리소스 사용하는 머신..

42SEOUL 2022.05.22

[ft_printf] printf()

printf 데이터를 특정한 형식에 맞춰 stdout에 출력하는 함수 int printf(const char* format, ...); 헤더 : return 출력한 문자의 개수 error : -1 형식 태그 형식 태그에 대응하는 인자를 형식 태그가 지정한 형태로 치환해 출력 format 다음으로 오는 인자들의 개수는 반드시 형식 태그의 개수보다 같거나 많아야 한다. %[flag][width][.정밀도][크기(length)]서식지정자 서식 지정자 서식 지정자 역할 자료형 %c 단일 문자 한 개 출력 char %s 문자열 출력 char * %p void * 형식의 포인터 인자(주소)를 16진수로 출력 void * %d 10진수 숫자를 출력 int %i 10진수 정수를 출력 int %u 부호 없는 10진수 숫..

42SEOUL 2022.04.22

[C / get_next_line] 파일 디스크립터 (File Descriptor)

파일 디스크립터 (File Descriptor) 리눅스 혹은 유닉스 계열 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념으로 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값 파일에 빨리 접근할 수 있도록 도와주는 파일의 별명같은 것이다. 일반적으로 0과 양수인 정수값을 갖는다. - 유닉스 시스템에서 모든 객체들을 파일이라고 한다. ( 디렉토리, 소켓, 파이프 등 모든것이 하나의 파일) 유닉스 시스템에서 이 객체들에 접근할 때 파일 디스크립터를 사용한다. - 응용 프로세스가 파일을 열거나 생성시 파일 디스크립터를 얻게 된다. 얻게된 파일 디스크립터는 이후 일어나는 모든 동작(읽기, 쓰기, 파일 동작 제어 등)에서 그 파일을 가리키는데 사용된다. - 파일을 open()시 file discript..

42SEOUL 2022.03.16

[C / get_next_line] 정적 변수 (static variable)

정적 변수 (static variable) 함수가 종료되어도 프로그램이 종료되지 않는 이상 메모리상에 남아있는 변수 static 자료명 변수명; 보통 일반 지역변수는 스택(Stack) 영역에 저장된다. 이 스택 영역의 변수들은 함수 호출시 메모리에 할당되며 함수 종료시 메모리에서 사라진다. static 변수는 데이터(Data)영역에 저장되는데, 전역 변수도 이곳에 저장된다. 데이터 영역은 프로그램 시작시 0 또는 NULL이 할당되며, 프로그램 종료시 소멸된다. 이해를 돕기위한 코드 int test() { static int cnt = 0; cnt++; return (cnt); } int main() { printf("%d\n", test()); printf("%d\n", test()); return (0..

42SEOUL 2022.03.16

[C / Libft] 컴파일 과정

컴파일 과정 1. 소스파일 (*.c) 사람이 이해할 수 있는 언어 2. 목적파일 (*.o) 기계가 이해할 수 있는 언어 이 때 gcc 컴파일러 필요 // 소스 파일로 목적 파일 생성 gcc -c 3. 실행파일 (a.out || .exe) 기계어로 된 목적파일과 시스템 라이브러리를 묶어 생성한 파일 링커 : 목적파일들과 c 라리브러리, 사용자 라이브러리들을 링크한다. // 생성된 목적 파일로 링커 과정을 통해 실행 파일 생성 gcc -o

42SEOUL 2022.03.09