공부를 한게 없어서 생각을 쓴다. 이틀연속이다. 어쨌든, 오늘은 다른 스터디를 가서 프로그래머스 문제를 같이 풀어봤다. 나름의 해결책도 제시하고 남의 관점도 듣고했지만 결국 풀이를 포기하고 해설을 봤다. <슬픔을 공부하는 슬픔>에서 신형철씨가 말했다.

"당신이 한번 포기한 적 있는 대상은, 절대로 포기 못 할 대상이 다시는 될 수 없다. 그것을 포기할 때, 절대로 포기 못 하겠다는 그 마음까지 함께 포기한 것이므로. 그러므로 한번 포기한 대상을 다시 포기하는 일은 처음보다 훨씬 쉬워진다."

 실은 '문학과지성 시인선'을 399번째까지 출간한 한 출판사를 보면서 (당시, 현재는 529번째까지 나왔다.) 출판사뿐 아니라 한국 사회가 시를 포기하지 않았다는 사실을 도출하며 쓴 문장이다.
나는 문제 하나와 동시에 어떤 다른 것을 포기했지만 더 다른 것은 포기하고싶지 않아서 포기 이후를 고민해보고 싶었다.

  1. 해설을 이해하고 직접 코딩해보기
  2. 문제가 담고있는 알고리즘의 카테고리를 알아보기
    2-1. 카테고리의 대표적인 알고리즘이 있으면 공부
    2-2. 예시문제가 있으면 몇개라도 풀어보기
  3. 문제의 카테고리에 맞게 더 어렵게 변형시켜보기

 이정도가 있어보이는데 3번을 추가한 이유는 땅따먹기가 더 어려워질 가능성이 충분한 문제인 것 같아서이다. 그리고 어떤 카테고리인지 분류는 못했다. 내가 어떤 카테고리들이 있는지 모르기 때문이기도하고 메타인지도 생기지 않아서인 것 같기도 하다.

 사실 언제 포기해야하는가를 아는 것이 더 중요한 문제일 것이다. 정렬문제의 풀이를 고민해볼 필요는 있지만, quick, merge, bubble, selection, insertion, heap, shell sort 알고리즘을 개발할 수도 없고 노력을해서도 안될 것이기 때문이다. 포기 시점을 알려면 더 알고있는 사람과 소통하는 것이 답이다. 아무튼 현재는 배우는 단계이므로 빠르게 포기하고 열심히 학습하도록 해야할 것이다. .. 슬프고 끔찍한 결론이다.

참고

궁금점, 더 공부할 것들

  • 이를테면 프로그래머스 문제를 보면 해시, 스택/큐, 힙, 정렬, 완전탐색, 탐욕법, 동적계획법, 깊이너비 우선 탐색, 이분탐색, 그래프 카테고리가 있다. 얘네들을 기본적으로 숙지해야할 것 같고 이 외 프로그래밍에서 자주 쓰고 중요한 카테고리들이 무엇인지까지 알아보면 좋을 것 같다.