크래프톤정글 51

크래프톤정글 8주차; WIL - PintOS Project 1 Threads

2022-12-16, 2022-12-17 PintOS 프로젝트 - 쓰레드와 동시성 참고: https://omscs.gatech.edu/cs-6200-introduction-operating-systems-course-videos 무엇? 쓰레드는 무엇인가? 쓰레드는 장난감 샵의 일꾼! 이 일꾼은 능동적인 주체다 장난감 주문을 위한 일을 한다 = 쓰레드는 프로세스를 수행한다 다른 일꾼들과 동시에 일한다 = 많은 쓰레드는 동시에 일한다(동시성의 개념) 다른 일꾼들과 동시에 일할 때 협업이 필요하다 효율적으로 일하기 위해, 도구, 일하는 공간, 부품 등을 서로 공유한다 == I/O 기기, CPU, 메모리 등을 공유한다 → 어떤 쓰레드가 이러한 자원에 접근할 수 있는지 어떻게 결정할까? 스레드와 프로세스는 어떻게..

크래프톤정글 7주차; WIL - 웹 서버 개발 일지

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. TIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 컴퓨터 시스템 Chapter 11 네트워크 프로그래밍 개념 정리 참고: 무엇? 7주차 과제를 위한 컴퓨터 시스템 노트 정리! ☞ 컴퓨터 시스템 정리 (CSAPP) Chapter 11 네트워크 프로그래밍 왜? 7주차 커버리지 클라이언트-서버 모델 이해 ☞ 11.1장 네트워크 개념 리뷰 (특강자료) ☞ 11.2장 소켓 개요 이해(socket, bind, listen, accept, connect) ☞ 11.4장 웹컨텐츠 이해 (정적, 동적, CGI) ☞ 11.5장 HTTP 이해 (요청/응답, 헤더, 메소드, 상태코드) ☞ 1..

크래프톤정글 6주차; WIL - 동적 메모리 할당 개발 일지

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 본 노트는 크래프톤정글 6주차 주제인 “동적 메모리 할당기 구현” 과제를 위한 개발 일지입니다. 2022-12-02, 2022-12-03 말록 랩 - 동적 메모리 할당기 구현하기 이론 참고: Computer System A Programmers Perspective (3rd), Randal E. Bryan, David R. O’Hallaron, 김형신 번역, 피어슨에듀케이션코리아, 2016 무엇? 컴퓨터 시스템 정리 (CSAPP) Chapter 9 가상메모리 노트의 9.9.12절 내용을 가져왔습니다. 9.9.12 종합 설계: 간단한 할당기의 구현 intro 즉시 경계 태그 연결을 사용하는 묵시..

크래프톤정글 6주차; TIL - 백준 9020 골드바흐의 추측 재도전

2022-12-04 백준 9020 골드바흐의 추측 파이썬 참고: 무엇? 시간 초과의 굴레에서 벗어날 수 없었던 골드바흐의 추측 문제를 다시 풀고 이해하기 왜? 첫 달에 어려웠거나 한 번에 풀지 못한 문제 다시 푸는 중 어떻게? 시간 초과에서 벗어나는 방법 소수 리스트를 만들기 n의 범위인 10000까지 소수를 미리 구한다 나는 테스트 케이스를 받을 때마다 소수를 일일이 새로 구했다. → 시간 초과 확률↑ 알고리즘 문제를 많이 풀어보지 않아서인지 어쩐지는 몰라도, 10000까지 미리 다 찾는게 마음에 들지 않았다! 그래서 미리 다 구하지 않는 다른 방법은 없을까 고민하다가 다른 정글메이트(?)에게 물어봤더니, DP의 memoization 기법처럼 이전 테스트 케이스의 이미 구한 소수를 저장하는 방식을 얘기..

크래프톤정글 5주차; TIL 2 - Red-Black Tree의 insert, delete 연산, C typedef, enum 활용, 메모리에서 스택과 힙의 자라나는 방향

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. TIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2022-11-27 Red-Black Tree의 insert 연산 참고: https://www.geeksforgeeks.org/red-black-tree-set-2-insert/ https://www.geeksforgeeks.org/c-program-red-black-tree-insertion/ 무엇? 삽입하려는 x 노드의 엉클이 red일 때 삽입하려는 노드 x의 엉클이 black 일때 Left Left Case Left Right Case Right Right Case Right Left Case → 자료구조 노트에 정..

크래프톤정글 5주차; TIL 1 - C 프로그래밍, 함수 호출 방식, C언어 extern, static 변수

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. TIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2022-11-26 에드위드 “C 프로그래밍 기초 & 심화” 강좌 참고: https://www.edwith.org/knuswedu_cbasic/ https://www.edwith.org/knuswedu_c/ 무엇? C 프로그래밍 기초 C언어 변수와 자료형 입출력 기본 연산자 + 특수한 연산자 배열 프로그래밍 문자열 프로그래밍 라이브러리 함수 & 사용자 정의 함수 사용하기 C 프로그래밍 심화 비트연산자 다차원 배열 포인터 & 다중 포인터 → C언어 노트에 정리해서 추가 왜? 5주차 키워드 C로 RB 트리 구현 & 추후 pi..

크래프톤정글 4주차; TIL 4 - DP 행렬 곱셈 문제, 탐욕법 강의실 배정

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분은 피드백 주시면 감사합니다. 2022-11-23 동적계획법; 행렬 곱셈 순서 문제 해결하기 참고: https://www.youtube.com/watch?v=8Ni1gaP35i8 https://www.acmicpc.net/problem/11049 위키백과 | 행렬곱셈 무엇? 행렬 곱셈 원리 첫째 행렬의 열 개수와 둘째 행렬의 행 개수가 같아야 함. 따라서 교환 법칙은 성립하지 않고, 결합법칙, 분배법칙은 성립 행렬 곱셈 비용 위와 같은 m * n 행렬 A와 n * p 행렬 B를 곱하면 다음과 같은 m * p 행렬 C가 생긴다 각 성분은 n번 곱해지고 n번 더해지므로 2n번의 연산이 필요하고, m * p개의 성분이 있으므로..

크래프톤정글 4주차; TIL 3 - 컴퓨터 구조와 운영체제의 큰 그림

이 노트는 정리하여 운영체제 카테고리로 옮겼습니다! 2022-11-23 컴퓨터 구조와 운영체제 50분만에 핵심 개념 정복하기 (ft. 강민철 저자님) 참고: https://www.youtube.com/watch?v=LBqJwmFMQHI&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=2 https://www.youtube.com/watch?v=B8TDaBp3UWo&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=8 ☞ 운영체제 개념 노트 포스팅으로 옮김

크래프톤정글 4주차; TIL 2 - DP 동전 문제, LCS, 파이썬에서 2차원 배열 주의사항, 배낭 문제

2022-11-20 동적계획법; 계단 오르기와 동전 문제 참고: Chan-Su Shin | 알고리즘 - 동적계획법 소개 무엇? DP 알고리즘 강의 예제 계단 오르기 문제와 백준 9084번의 동전 문제를 비교해보고 풀어보기 계단 오르기 문제 계단을 한 칸, 혹은 두칸으로만 오를 수 있다고 가정 n 칸에 오를 수 있는 경우의 수 구하기 백준 9084 동전 (예제2로 설명) 1, 5, 10원 짜리 동전이 있다고 가정 해당 동전들로 20원을 만들 수 있는 경우의 수 구하기 왜? 동전 문제의 힌트를 계단 오르기 예제에서 얻을 수 있었음. 어떻게? 계단 오르기 문제 n칸에 도착한 모습을 그려본다. 우리는 한 칸이나 두 칸만 오를 수 있기 때문에, 그곳에 도착하려면 우리는 n칸에서 한 칸 뒤인 n-1칸, 혹은 두 칸..

크래프톤정글 4주차; TIL 1 - DP, 피보나치 수 문제, 플로이드 알고리즘

2022-11-19, 2022-11-20 동적 프로그래밍 (dynamic programming) 참고: 에드위드 파이썬으로 배우는 알고리즘 기초 | 09. 동적 계획과 이항 계수 에드위드 [MIT] 파이썬을 이용한 알고리즘의 이해 | 동적 프로그래밍 1 : 메모이제이션, 피보나치 수, 최단 경로, 추측 https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/resources/mit6_006f11_lec19/ https://www.youtube.com/watch?v=-G8kDiMAPf8&list=PLsMufJgu5932XYejsOwcUDJ2F75f56nrl&index=22 무엇? 기본 개념 recursion + re-use(memoiz..