[SW사관학교 정글] WEEK05 일지

0

SW사관학교 정글

목록 보기
1/3

한달 간 쓰지 않다가 한달이 지난 지금에서야 쓰는 회고


W01~W04 - 알고리즘

한달 간 알고리즘 학습을 통해
재귀, 완전탐색, 정렬, 이분탐색, 분할정복, 스택, 큐, 우선순위큐, 그래프, 위상정렬, DP, 그리디
라는 것을 배웠다.

물론 이것들이 알고리즘의 전부가 아니지만,

해당 알고리즘들을 배우면서 생각하는 힘을 기르게 된것 같다.

이제 웬만한 문제를 보면 알고리즘을 떠올릴 수 있게 되었고,

라이브러리 활용 능력을 포함한 문제 해결 능력이 많이 늘은 것 같다. 구글링 실력도

알고리즘주차가 끝난 지금,
나는 정글 내에서 알고리즘 스터디 장을 맡게 되어 매일 한문제씩 풀이하고있다.

스터디장을 해본적이 없거니와 스터디 자체를 해본적이 없어서 많이 어색하지만 팀원들이 많이 도와주고 있다.

아무래도 정글 과정을 진행하면서 알고리즘 스터디를 병행하기에는 버거울 것 같아서
스터디의 목적은 하루에 한문제씩은 풀자 다.

알고리즘 스터디 깃허브


WEEK05 - RBTREE

5주차는 RBTREE 구현하기다.

강당에 모여 5주차 발제를 할때, 이게 도대체 무슨소린가 싶었다.

C언어를 알고있긴 했지만 능숙하진 않았고,

무엇보다 우분투 환경에서 작업을 해야한다는 사실이 발목을 잡았다.

하지만 같은 팀 친구가 Docker에 대해 능숙하게 알고 있어서

우리 팀은 Docker로 우분투 환경을 만들었다. (보통 AWS EC2를 많이 쓰더라)

한가지 걱정되는 점은 다음주 Malloc 구현 과제때 Docker 환경에서 실행이 힘들 것 같다는 것인데(본인은 M1 Mac을 쓰고있다)

어차피 지금 EC2로 이사하나 다음주에 이사하나 이사하는건 매한가지라 과제하면서 이사하기로 했다.

본론으로 넘어가자면

RBTREE는 TREE의 한 구조로써 이진탐색트리와 비슷하지만 색깔로 구분해 스스로 균형을 맞추는 트리다.

일주일 안에 RBTREE를 구현하고 테스트파일을 돌려 통과 해야하는 구조인데,

C에 능숙하지 않다보니 첫 2~3일은 기초를 배우는데 몰입했다.

C를 배울 수 있는 곳은 아주 많지만 본인이 이용했던 곳은 여기인데,

사이트 자체에 실습할 수 있는 공간이 있어서 교육생들 대부분 이곳을 이용했다.

C 기초를 쌓고 열심히 구현한 결과

이런 결과를 볼 수 있었다.

완성코드


컴퓨터 시스템 읽기

트리 구현 외에도 우리에게 주어진 과제는 컴퓨터 시스템(CSAPP)을 읽는 것이다.


엄청 어렵다

보통 그 주차에 필요한 부분이나 다음 주 과제를 완성하기 위해 필요한 부분을
읽게되는데,

컴퓨터 이론이라면 치가 떨리는 나지만

꾹 참고 읽으니 과제 했던 부분이나 코드에 자주 쓰는 함수, 컴파일의 원리 등등

개발자들이 꼭 알아야하는 근본을 배우는 느낌이라 좋았다.


마무리

다음주에는 프로그래머스 여름 코딩테스트, SSAFY 8기 코딩테스트에 도전해볼 생각이다.

코딩 테스트를 잘본다 해도 취업을 한다거나 다른 교육프로그램에 간다거나 하는 것이 아닌

알고리즘 실력을 가늠해보고 싶어서 지원했다.

3개의 댓글

comment-user-thumbnail
2022년 5월 5일

화이팅 입니다 !

1개의 답글
comment-user-thumbnail
2022년 5월 6일

잘 읽었습니다. 파이팅!

답글 달기