본문 바로가기

분류 전체보기100

[네트워크] echo 예제로 이해하는 소켓 인터페이스 소켓통신 파일 처리와 같다?Unix/Linux 시스템에서는, 모든 I/O 자원이 파일처럼 취급된다.소켓도 file descriptor(식별자)를 통해 접근할 수 있는 "열린 파일"소켓을 열면, 파일을 다루는 방식과 유사하게 소켓에 대해 읽기/쓰기/닫기 등의 작업이 가능 rio 구조체를 이용해 소켓 다루기void rio_readinitb(rio_t *rp, int fd) { rp->rio_fd = fd; rp->rio_cnt = 0; rp->rio_bufptr = rp->rio_buf;}// 사용 예시 : rio 구조체를 socketfd와 연결된 소켓으로 초기화rio_readinitb(rp, socketfd)  그림으로 이해하는 소켓 인터페이스 주의사항listenfd : (liste.. 2024. 9. 16.
Allocator 퀴즈 출처정글 사관학교 1. 다음 코드가 일으키는 문제와 관련된 키워드A: m = malloc(5); m = NULL;B: free(n); n->val = 5;C: char *p; *p = 'a';A - memory leak : 필요하지 않은 메모리를 계속 점유하고 있는 현상B - dangling pointer (=Premature Free) : 유효한 객체를 가리키고 있지 않는 포인터[이슈1] 메모리 접근 시 예측 불가능한 동작[이슈2] 접근 불가 시 Segmentation Fault[해결] 메모리 해제 후 포인터를 NULL 혹은 nullptr로 처C - uninitialized pointer 2. 메모리를 할당하는데 블록단위로 할당하는 이유Fragmentation 방지관리 효율성할당 속도 향상 *오버헤드 .. 2024. 9. 14.
[WEEK5] allocator 재밌다! 🤔회고우리 모두가 성장 중지식을 주입하고 있고 분명 성장하고 있다. 하지만 내가 오늘은 조금만 일찍 퇴근하던게 쌓여 격차가 될 수 있음을 느꼈다. 계속 자극받을 동료들이 있어서 좋다. 잠시 쉬고 싶을 때 늦게 퇴근하는 동료들을 보며 한 줄이라도 더 보게 되고 self-푸시하게된다. 주어진 환경이 고맙고 헛되이 보내지 않았으면 한다. 늦잠으로 에너지 풀인 이번주안다. 윗 문단과 상반되는 인트로에 띠용했음을, 하지만 오히려 줄어든 시간에 더 집중했던 것 같다. 이번주는 알람 없이 깨서 11시 출근이 일상이 되었다. 그리고 한 01시 즈음 퇴근하니깐 12시간 정도 공부하고 있다. 분명히 지난 한달보다 엉덩이 붙이고 앉은 시간은 줄었지만 학습 만족도는 높다. 똑똑하고 집요한 팀원들 덕분에 allocator 4.. 2024. 9. 13.
🏃[알고리즘/python] DP - 동전 유형 접근 컨셉 동전 유형 1. 무한개의 동전 가짓수를 가지고 목표 금액을 만들기 위해 필요한 최소 동전 수 #무한개 # 최소 아이템수 #조합2. 유한개의 동전 가짓수를 가지고 목표 금액을 만들 수 있는 가짓 수 #유한개 # 가짓수 #조합3. 무한개의 동전 가짓수를 가지고 목표 금액을 만들 수 있는 가짓 수 #무한개 #가짓수 #조합 TODO: 배낭문제를 동전유형으로 풀어보기# 무한개 #최소 아이템수 #조합백준 #2294 동전2Q. 백준 #11047 동전0 은 Greedy 알고리즘으로 풀던데 차이점이 뭔가요?A. [동전0]은 요소가 서로 배수 관계이기에 동전을 내림차순해서 greedy 선택을 할 수 있는 조건이 주어집니다. 이와 달리 [동전2]는 서로 배수 관계가 아니이기에 모든 경우의 수를 구해야하고, 중복 계산을 줄이.. 2024. 9. 7.
[python] 유용한 문법 iteratoritems = [1, 2, 3, 4, 5]filtered = list(filter(lambda i: i%2 == 0, items))arr = map(int, input().split()) 비트 연산자# addmask = 0mask = mask | 1   기타# 문자열 포매팅var = 345.6789s1 = f'{variable}' # 345.6789s2 = f'{variable:.2f}' # 345.68 # 주의! variable 콜론 뒤에 여백 반영되므로 꼭! 붙이기# 숫자 문자열 리스트화s = "101110"arr = [int(char) for char in s] # [1, 0, 1, 1, 1, 0]# zip, unzipA = [1, 2, 3]B = [4, 5, 6]pairs = zi.. 2024. 9. 7.
C 언어 퀴즈 (feat. RB트리 복습) 출처정글 사관학교C Input and Output (Geeks for Geeks)C Functions (Geeks for Geeks)C Data Types (Geeks for Geeks)C Pointer Basics (Geeks for Geeks)C Dynamic Memory Allocation (Geeks for Geeks)  다음 세 함수 f1, f2, f3 각각에 대해서 문제가 있는지, 문제가 있다면 어떤 문제가 있는지 설명하시오.f1 : 지역변수 x의 주소를 return함 - 지역변수는 해당 함수가 끝나면 유효하지 않아서 값이 바뀔 수 있음 f2 : uninitialized pointer - px의 값이 임의의 값이므로 임의의 주소에 10을 넣으려고 함. Segmentation Fault f3 :.. 2024. 9. 7.
[정글 SW사관학교] WEEK4. 뒷심 부족 🤔회고 썸네일 설명문득 식당 의자를 보았는데, Red & Black 구성으로 RB 트리 그 자체라 동료들에게 공유했던 상황이다. RB트리에 흠뻑 빠졌던 한주를 표현해보았다.  코치님의 모든 말에 제대로 답변하고 싶다.용기내어 점심 합석! 대면한 덕분에 '답변에 뒷심이 부족하다'는 말이 과거와 달리 진심어린 조언으로 들렸다. 추후 제대로 답변 잘했다는 피드백을 받고 싶다. 그래서 이번 4주차에서는 더 많은 팀활동과 설명 시간을 가져보려한다. 또한 의도적으로 시험 리뷰 시간에 발표를 하려고 하고있다. 동료들에게 전하고 싶은 개념이 있는 문제 위주로 말이다. 내 개념에 갇히지 말고 열심히 지식을 교류해보자. 그 시간을 통해 내가 모르는 것은 채우고 아는 것은 더 단단하게 만들어보자. 그리고 시험리뷰할 때 앞.. 2024. 9. 6.
🏃[백준/python] DP 유형 모음집 및 접근 컨셉 분할정복 vs 다이나믹 프로그래밍 여러 하위 문제로 나누어 먼저 해결한 뒤, 그 결과들을 이용해 큰 문제를 해결하는 기법 분할정복다이나믹 프로그래밍 (이하 DP)하위 문제중복이 없음중복 있음즉, 단순 분할정복 수행 시 중복된 작업을 수행(해결 방법은 아래 이어서)고려사항 시간 - 메모리 간의 trade-off  DP 구현방법TODO 두 방식의 차이점 체감하기 Top DownBottom Up구현 방법재귀, memoizationfor 루프, Tabulation  [생각해보기] 시간복잡도 (피보나치 수열 vs 팩토리얼 문제) 피보나치 수열팩토리얼점화식fibo(n) = fibo(n-1) + fibo(n-2)factorial(n) = n*factorial(n-1)시간복잡도[재귀로 구현 시]  O(2^n)함수를 계.. 2024. 8. 28.
[정글 SW사관학교] WEEK3. 마라톤 마인드로 임하자 🤔회고 알고리즘 정답 풀이를 보는 것에 대해일정 시간 제한을 두고, 이후에는 정답 풀이를 보는 방법으로 공부를 진행하고 있다. 주어진 과제의 양에 비해 시간이 짧아서라고 생각하지만 찜찜함을 놓을 수 없었다. 하지만 동료가 말해준 혜안 덕분에 마음이 편해졌다. "수학의 정석에서 예제가 주어지고 그에 대해 상세한 풀이 방법을 익히잖아. 선별해주신 알고리즘 과제도 마찬가지라고 생각해" 그 뒤로 편히 답을 보고 있고, 8.23 금요일 DP 과제부터는 짧게 아이디어만 떠올리고 바로 답을 보고 있다. 그래프 순회 방법을 겨우 익혔더니 이제는 점화식을 찾으라고 하는데 도통 모르겠기 때문이다. 이건 수학문제 아닌가? 아직은 어색하고 답답하지만 코드트리 예제와 풀이를 통해 하나씩 익혀보려한다. 이 또한 뭔가 보이겠지 .. 2024. 8. 28.