[TIL] 220125 항해 16일째

박민우·2022년 1월 25일
0

항해

목록 보기
10/33


오늘의 공부 시간표

9~10 : 예습 !!
10~10:30 : 강의 (이진트리 !!)
10:30~14:00 : 이진트리 이해하기 + 점심시간
14:00~18:30 : 문제 풀이
18:30~20:00 : 저녁 시간
20:00~21:00 : 과제톡
21:00 ~ : 개인 공부

공부한 내용들

  • 이진 트리 !!
  • 이진 트리의 최대 깊이(leetcode 104)
  • 이진 트리의 직경(leetcode 543)
  • 가장 긴 동일 값의 경로(leetcode 687)
  • 이진 트리의 반전(leetcode 226)
  • 트리의 부모 찾기(BOJ 11725)

오늘의 회고

쉼, 뒤에 찾아오는 여유.

쉼? 어제 TIL을 보았다면 언제 쉰건지, 뭐가 쉰건지 .. 싶을 수 있다.
그런데 뒤척이면서도 아침 일찍 일어나 스택, 큐, DFS, BFS 구현 코드를 찬찬히 살펴 보았고,
'하나님의 말씀'을 보고 침착하게 하루를 시작했다.

개인적으로 쫓기듯이, 쫓아가면서 달리기하지 않은 오늘이었던 것 같다.
무척 어렵기로 소문난 '트리'를 만나면서도 말이다.
트리를 배우기 직전까지 BFS, DFS가 완전 이해가 되었느냐고 하면, 그것도 아니었을 수 있다.
그런데 트리를 배우고, 첫 번째 문제를 건드려보고.
답을 보고, 이해하고, 다음 문제를 건드려보고.
그저 이렇게 하루를 보냈다.
그런데 오늘이 다 갈 즘 느낀 것은 '오늘은 이해를 잘 했네'라고 생각한 것이었다.
쫓기거나 쫓아가면 무척 분주한 하루를 보내고도 '오늘은 뭘 한 거지..?'라는 생각을 떨칠 수가 없다.
그리고 그런 생각에 휩쓸리면 잠을 자도 하루가 끝나지 않은 것 같은 시간을 보내게 된다.
오늘이 2주 조금 지난 때이긴 하지만, 이미 항해에서 수날을 그렇게 보냈었다.

알고리즘은 아직 2주 남았다.
이 시간들을 잘 보내기 위해서는 결국 하루를 시작하고 마칠 수 있어야 하는 것 같다.
몰입은 하루가 끝나지 않게 만드는 무엇이 아니라, 하루를 시작하고 마칠 수 있기에 그 가운데 분명한 몰입이 생기는 것 아닌가 라는 생각을 해본다.

이제야 본격적으로 오늘 배운 '트리'에 대해서 이야기 해보면.

트리의 구조 자체는 연결 리스트처럼 되어 있다.
노드를 사용하고 주소 값을 옮겨 다니면서 답을 찾아가는 방식이다.
그래서 객체 사용보다 프린트를 더 많이 찍어보게 되었고, 이렇게 접근하면서 이전에 계속 헤매이던 dfs, bfs를 실행할 때 여러 값들을 가지고 다니는 모양을 조금씩이나마 다시 이해하게 되었다.

트리도 결국 그래프, 스택, 큐, DFS, BFS를 가지고 풀이한다.
모양이 트리일 뿐이다.
left와 right를 끊임없이 지정해주지만, 다 연결리스트이다.

여유가 생긴 것일까. 문제는 못 풀어도 맥락이 조금, 아주 조금 이해가 되었다.
물론 구현은 아직 어렵다.
생각과 도식화는 되었는데 어떤 방식으로 접근해야되는지, 이러한 때에는 어떻게 코드를 적어주어야 하는지 막막할 때가 많다.
계속 답을 못 맞추니 답이 아닐까봐 코드를 적기가 꺼려지기까지도 한다.
그러나 어쩌겠나.
한 줄 한 줄, 다시 계속 적어나가야 한다.
답을 맞출 때까지가 아니다.
아마 개발자라면, 그리고 알고리즘을 계속 공부하는 시점까지는,
한 줄, 한 줄, 다시, 또 다시.

나는 컴퓨터가 아니니까 :)

profile
KingdomOfGod newPerson = new KingdomOfGod();

0개의 댓글