← 블로그

· TIL

250912 TIL: 정글 생존 12일차

오늘 한 일

  • 경기대 배상원 교수님의 재귀 강의를 들으며 재귀에 대해 조금 더 이해했다.
  • 어제 공부한 이진 탐색 기반의 문제를 풀었다.
  • CSAPP 2장 1, 2절을 공부했다.
  • 오전에는 CLRS를 읽었다.

배운 점

  • 재귀에 대해 한층 더 이해가 깊어진 것 같다. 처음엔 이해가 잘 안 갔는데, reduction을 통해 문제를 더 작은 부분 문제로 줄이고, 더 작은 인스턴스로 문제를 줄이는 것은 같지만 g(x)라는 별개의 함수를 호출하는 것이 아닌 f(x)가 자기 자신을 호출하는 차이일 뿐이라는 것을 깨달았다. 더 깊은 스택의 f(x)를 호출할 때는 반드시 입력이 줄어들어야 하고, 이 줄어든 입력이 base case에 도달해야 재귀 호출이 종료된다는 것을 명확히 했다.

  • 재귀뿐만 아니라, 알고리즘 문제를 바라보는 시야 자체가 넓어졌다. 호출하는 시점에서 그 함수의 내부 동작까지는 고민할 필요가 없다. 단지 지금 작성 중인 함수 내에서 다른 함수(혹은 자기 자신)를 호출했을 때, 그 리턴값이 어떻게 나올지만 생각하면 된다. 호출된 함수의 리턴값이 약속대로 나오도록 보장하는 것은 호출된 함수가 맡아야 할 역할이라는 설명이 이해에 크게 도움이 되었다.

  • Simplify & Delegate. 이 말을 참고해야겠다.


어려웠던 점 & 해결

  • 이진 탐색 관련 문제를 4개 정도 풀었는데, 전부 어려웠다. 1주차에 비해 난이도가 많이 오른 것 같다. 그래도 1주차에 익힌 공부법들이 조금씩 효과를 보는 것 같다.

  • 시간이 너무 모자란 것 같다. 하루가 짧다. 좀 더 가진 시간을 알차게 써봐야겠다.

  • 비가 와서 그런가, 조금 사색적이고 약간은 가라앉는 하루인 것 같다. 공부도 잘 안돼서 장소를 여러 번 바꿔봤는데, 결국 오늘 목표치를 달성하지는 못했다. 아침 시간에 CLRS를 읽으며 이해에 집중하느라 오전을 다 보내버렸다. 오늘은 실패했지만, 미래의 나에게는 득이 되겠지.