brunch

You can make anything
by writing

C.S.Lewis

[Q3] 완료와 네번째 퀘스트

2022.2.20(일)~  2022.3.6(일)

들어가는 글: 이번 미션은 2주나 걸렸네요. 어찌저찌 하다보니 시간이 참 잘 갑니다 ^^;; 


1. Q3의 개요


책: <코딩 테스트를 위한 자료 구조와 알고리즘 with C++> 

기간: 2022.2.22(일) ~ 3.6(일) 2주일간 

내용: 연습문제 21~ 30번 공부하기 

깃헙 링크: 

https://github.com/yudong80/cppstudy/commit/724cf1213caabef694a05e2dab92705227495285

-  https://github.com/yudong80/cppstudy/commit/e1cb538e4fda997f37a4868e06904bd4da14555f

https://github.com/yudong80/cppstudy/commit/0e015149fa7ff9099c4027d9450f82190b9d429c

연습문제 목록: 

21) 선형 시간 선택 

22) C++ 표준 라이브러리를 이용하여 맴과 리듀스 구현하기 

23) 맵리듀스를 사용하여 소수 확인하기 

24) 최단 작업 우선 스케줄링

25) 분할 가능 배낭 문제 

26) 크루스칼 MST 알고리즘 

27) 그리디 그래프 컬러링 

28) BFS 구현하기 

29) DFS 구현하기 

30) 프림 알고리즘 구현하기 


2. Q3에서 배운점 

알고리즘을 배운다기보다는 다양한 상황에서 C++ 코딩에 익숙해지는 것이 목표입니다. 

이번엔 

1) CMake를 활용해서 boost library 를 활용하는 법을 배웠고 

2) 다양한 그래프 알고리즘을 손코딩해보면서 Edge와 Graph 자료구조(class와 struct)를 사용해볼 수 있었습니다. 


10일정도 손놓고 있다가 오랜만에 예제 코딩해보니 잘 안되더라구요, 

손도 굳고.. 역시 자주 코딩을 해봐야 하는 것 같습니다. 


그외 질문들은 

- friend 키워드

- inline 키워드

- C++에서는 그냥 int 대신에 unsigned를 많이 쓰는 이유가 있나? 

정도가 있었고. 


예제 26~30 의 경우 Edge와 Graph 자료구조를 재활용하였는데 매번 복사/붙여넣기 하는게 아니라

header 파일을 사용하여 별도 파일로 분리해서 참조하는 식으로 리팩터링 해보고 싶었습니다.  


하지만.. 시간 관계상 다음에 T_T


3. 다음 퀘스트: Q4 


다음주부터 사내 온라인 강의인  "C++ Template Programming"을 시작합니다. 

기간은 3월8일~ 4월 7일인데 

첫주 기간을 Q4로 잡고 


그 이후의 공부 내용은 별도의 Q5로 분리하도록 하겠습니다. 

지금까지 Q1~ Q3 하면서 template<typename T> 많이 사용했었는데 수업 따라가는데도 도움이 되었으면 좋겠네요. 


C++ 퀘스트는 계속됩니다.


감사합니다. 

2022.3.6

매거진의 이전글 [Q2] 완료와 세번째 퀘스트
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari