분류 전체보기121 [백준 1080번] 행렬 문제 풀이 3 X 3 크기의 행렬로만 바꾸어야 한다. 바꾼 곳을 체크하기 위해서 3 X 3에서 가장 첫번째 부분이 될 수 있는 인덱스를 배열에 추가하여 관리하기로 했다. 최솟값을 구해야 하므로, 가장 다른 것이 많은 부분부터 바꾸는 방법을 택했다. 2023. 11. 19. [9주차 개념] 파이프 🚩 pipe : 한 프로세스에서 다른 프로세스로의 단방향 통신 채널, write와 read로 data 통신 가능 #include int pipe(int filedes[2]); filedes[0] : 읽기용 filedes[1] : 쓰기용 성공시 0, 실패 시 -1 return process 당 open file 수, 시스템 내의 file 수 제한 🚩 pipe의 특성 FIFO 처리 lseek은 작동하지 않음 ( 읽은 데이터는 사라짐 ) pipe는 fork()에 의해 상속 가능 🚩 pipe를 이용한 단방향 통신 (부모 → 자식) pipe 생성 fork()에 의해 자식 생성 & pipe 복사 부모는 읽기용, 자식은 쓰기용 pipe를 close main() { char ch[10]; int pid, p[2]; i.. 2023. 11. 14. [백준 14238번] 출근 기록 문제 풀이 1. 첫번째 시도 글자 수 가능한 B의 최대 개수 가능한 C의 최대 개수 1 1 1 2 1 1 3 2 1 4 2 2 5 3 2 6 3 2 7 4 3 8 4 3 글자 수와 관련하여, B와 C의 최대 개수보다 크면 -1을 리턴하려 했으나, 만약 글자 수가 7개이고, B가 4개, C가 3개이면 최대 개수 조건은 만족하지만, B_B와 C_ _C 조건을 맞출 수 없으므로 다른 조건을 생각해봐야 한다. 2. 두번째 시도 위의 조건을 맞출 수 없는 경우를 생각해보니, B와 C의 최대 개수가 같이 변하는 6k + 1 (k는 정수)일 때, 최대 개수가 B와 C가 같은 경우이다. 또한, C가 2개 이상일 때, A는 C-1개 이상 있어야 한다. 3. 세번째 시도 미리 result 배열.. 2023. 11. 13. [8주차 개념] 메모리 매핑 🚩memory mapping memory mapping : file을 프로세스의 memory에 mapping. 즉, 프로세스에 전달할 데이터를 저장한 파일을 직접 프로세스의 가상 주소 공간으로 매핑한다. 따라서, read, write 함수를 사용하지 않고도 프로그램 내부에서 정의한 변수를 사용해 파일에서 데이터를 읽거나 쓸 수 있다. 사용 방법 #include void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); addr : 매핑할 메모리 주소 len : 메모리 공간의 크기 prot : 보호 모드 ( PROT_READ : 읽기 허용, PROT_WRITE : 쓰기 허용 ) flags : 매핑된 데이터의 처리 방법을 지.. 2023. 11. 10. 이전 1 2 3 4 5 ··· 31 다음