일단 해보자
github: @syk25
Trouble shooting자료구조와 알고리즘에서 cpp 파일을 빌드를 해야하는데 링커가 작동하지 않는다는 오류가 계속 발생하였다.cd "/Users/syk25/studies/hong_dsa/HongLabDataStructures/Ex0303_SparsePolynomial/" && g++ -std=c++17 -fcolor-diagnostics -fansi-escape-codes Ex0303_SparsePolynomial.cpp -o Ex0303_SparsePolynomial && "/Users/syk25/studies/hong_dsa/HongLabDataStructures/Ex0303_SparsePolynomial/"Ex0303_SparsePolynomial Undefined symbols for ar..
개요10개 정도의 채용공고의 주요업무, 자격요건, 우대요건에서 빈출 키워드를 추출하여 이력서를 수정하는 작업이었다.진행과정채용공고 선정활동회사의 도메인과 내가 쓴 기술스택을 기준으로 채용공고를 선정했다.진행회사의 도메인은 나의 관심사와 일치해야 내가 집중할 수 있기 때문에 판단하기 좋은 기준이었다. 내가 쓴 기술스택 위주로 뽑는 것은 좋지 않았던 같았다. 이력서 수정작업은 나의 이력서 합격률을 높이기 위함도 있지만 회사가 원하는 기술스택을 파악하기 위함도 있다. 따라서 내가 쓴 기술스택은 선정 기준에서 제외해야 했다.고찰차라리 채용공고가 얼마나 구체적으로 특정되었는 지 기준으로 선정하자. 채용공고가 구체적이라는 것은 ① 문제가 특정되어 있고 ② 하고자하는 솔루션이 존재하며 ③ 주요업무가 솔루션에 기여하고..
기록을 왜 안했을까?이력서 시즌이 다가오면서 PintOS, 나만무를 하느라 기록을 넘겨버린 나에게 책임을 물으면서 새벽에 기록하는 법을 찾고 있다. 내가 정말 깊게 공부하더라도 시간이 지나면 잊기 마련이다. 이력서를 쓰면서 0주차 때 했던 프로젝트 기록을 봤는데 내가 이런 기능도 구현을 했었나라고 생각이 들 정도로 한 것이 많았다. 그런데 어느 순간 기록을 하지 않은 이유는 있었다. 지금처럼 기록이 회고가 아니라 일기가 되어가는 방식이 자주 일어났었고 일기는 감정을 어느 정도 해소할 수 있을 지언정 개인의 성장에는 크게는 도움이 되지 않는다고 생각했기 때문이다. 따라서 성장에 도움이 되는 기록법을 찾고자 했다. 일기 vs 회고일기는 개인의 감정과 느낀 점을 기록하는 글이라면 회고는 개인이 겪은 경험에서..
1. 과제 소개Alarm clock은 프로세스나 스레드를 재우거나 깨우는 역할을 합니다. 일정 시간 동안 스레드를 일시 정지 시킨 후에 프로세스, 스레드를 다시 깨워 실행을 재개합니다.스레드를 재우고 깨우는 데에 timer-interrupt를 사용합니다.PintOS는 현재 busy-waiting 방식으로 alarm clock을 구현하고 있습니다.2. 목표이번 과제는 busy-waiting 방식으로 구현 된 alarm clock을 sleep awake 방식으로 바꾸는 것이 목표입니다.busy waiting 방식은 cpu 에게는 그다지 효율적인 방법이 아닙니다. busy-waiting방식에서 스레드는 ready state와 running state를 반복해서 왔다갔다하기 때문입니다.sleep/awake 방..
소감1주일 간 Red Black Tree를 처음부터 끝까지 C로 구현해야했다. CLRS책을 참고하면서 모든 함수들을 구현했지만 테스트케이스에서 계속 실패가 떴다. 디버깅과정이 꽤 까다로웠다.Case1. 틀린 그림 찾기디버깅을 하면서 마주쳤던 버그 중에 하나는 틀린 그림 찾기다.위의 함수는 맞는 코드고 아래함수는 틀린코드다. 맞는 함수를 토대로 틀린 함수를 구현했다.확인 결과, 변수 초기화를 놓쳤다.결론! 디버깅 툴을 잘 쓰자!
이중포인터를 쓰는 이유 이중포인터는 포인터의 메모리 주소를 저장하는 변수다. 포인터가 변수의 메모리 주소를 저장한다는 점에서 차이가 있다. 이중 포인터 그 자체는 의미가 없다. 하지만 이중포인터와 함수를 함께 쓴다면 그 의미가 살아난다. 이중포인터와 함수의 선언 #include #include ////////////////////////////////////////////////////////////////////////////////// typedef struct _listnode { int item; struct _listnode *next; } ListNode; // You should not change the definition of ListNode typedef struct _linkedlis..