클래스/└ 항해99

<WIL> 알고리즘, 어려운 것, 낯선 것

디벅잉 2022. 3. 27. 23:39
728x90

 

🌊

 

 # 3주차 

심화반을 선택한 관계로 알고리즘이 4주 동안 진행됩니다.

알고리즘에 집중하고 싶었다.

라기보다는 심화반을 선택하는 동료들에게 자극을 받고 싶었습니다.

하지만 하루 종일 알고리즘 풀이를 하는 것이 쉽지만은 않습니다.

당장 프로그래밍 실력이 향상되는 것 같지도 않고,

게다가 알고리즘 풀이 조차도 늘고 있는 것인지 애초에 풀수 있던 문제일 뿐인지 헷갈리기도 합니다.

그럼에도 얻는 것이 있다면 복잡한 구조의 코드를 해석하고 흐름을 이해한다는 것입니다.

반복문과 조건문이 중첩되기 시작하면 코드의 흐름을 따라가기가 어려웠습니다.

자료구조를 비롯한 알고리즘 학습을 집중적으로 하면서 흐름을 따라가는 것이 한층 수월해짐을 느낍니다.

어려운 것이 아니라 낯선 것이었습니다.

늘 그렇듯이.

코드를 작성할 때도 단편적인 코드 조각이 아니라 맥락을 가지는 코드를 짜기 위해 의식적으로 연습합니다.

좋은 코드를 짜는 것이 협업 뿐만 아니라 미래의 나 자신을 위한 것임을 체감합니다.

 

자료구조: 이진 트리

이진 트리 반전 문제로 과제톡 발표를 하였습니다.

맥스 하웰 관련 에피소드가 재미있어 이름을 올렸습니다.

발표 준비를 하면서 좋은 점은 같은 코드를 반복적으로 보게 되는 것입니다.

반복적으로 보다보면 적당히 이해하고 넘어갔던 부분들이 눈에 들어옵니다.

이진 트리는 자식 노드를 프로퍼티로 가지는 TreeNode 객체로 다루는 경우가 있습니다.

이는 연결리스트에서 연결된 노드를 프로퍼티로 가지는 형태와 매우 유사합니다.

프로퍼티로 노드를 하나만 가지느냐 좌우로 자식노드 하나씩 2개를 가지느냐 차이일 뿐이지요.

이 개념이 처음에 익숙하지 않았고 여전히 숙달되지 않았지만 이것만 머리와 손에 잘 익히고 있다면

연결리스트, 트리 문제를 풀이하는데 큰 힘이 될 것입니다.

 

알고리즘: 정렬

2주동안 기본적인 자료구조들을 학습하였고, 정렬부터 본격적인 알고리즘 학습을 시작하였습니다.

앞으로 2주간 정렬, 탐색, DP 등 하나하나 제대로 익히고 돌아오겠습니다.

 

 FULL AHEAD 

 

728x90