본문 바로가기
끄적끄적/회고록

11월 1주차 회고록

by 엑츄얼리 2022. 11. 8.

알고리즘 스터디를 시작했다. 하루에 1문제씩 가볍게 하려는 마음으로 시작했는데,

막상 시작하고서 의욕이 앞서서 어려운 문제들을 선정한 나머지, 알고리즘에 시간을 생각보다 너무 많이 썼다.

 

최근에 코딩테스트 때문에 C++(알고리즘)위주로 공부했어서 그런가, 자바 수업 듣는데 이걸 까먹네? 싶은 것들이 있었다.

어쨋든 java & spring으로 취업준비를 하기 때문에, 11월 한달동안은 알고리즘 매일 1문제 + Java의 정석 7장까지 + 패캠 제공 인강 완강을 목표로 공부할 계획이다. 알고리즘은 일반적(?)으로 코테에서 많이나오는 것들 위주로 진행하는게 좋을 것 같다.

 

2의 보수

처음 자바의 정석을 공부할 때도 몇 시간씩 매달려서 겨우겨우 이해했던게 기억이 난다.

결과적으로 핵심은 2의 보수의 정의가 어떤 수가 2가되도록 만들어주는 수가 아닌

어떤 수가 2n(2진수 기준)이 되도록 만들어주는 수라는 것 이였다.

예를 들어 1의 2에대한 보수는 1일 수도 있고, 11일수도있고, 111일 수도 있다는 것이다.

 

이진 검색 트리 & 최소 신장 트리

이진 검색 트리는 이전에 공부한 적이 있는데, 최소 신장 트리는 이름만 알고있는 정도였었다.

 

먼저 이진 검색트리(백준 1300)는 알고리즘 자체는 어렵지 않았는데

무작정 접근해서는 시간초과가 나게 만들어져있었다. 

결과적으로는 다른 블로그를 보고 배웠는데, 통찰력에 감탄을 금치 못했다....

나중에 꼭 다시 풀어봐야될 문제였다.

 

다음으로 최소 신장 트리(MST)(백준 1774)의 경우 공부하는데 시간이 정말 오래걸렸다.

방식도 문제인데, 최소 신장 트리를 구현하는 방식이 여러가지였고,

이 중 크루스칼 알고리즘을 제대로 구현하기 위해서는 유니온 알고리즘을 추가로 공부했어야했다. 

개인적인 생각인데, 이런 문제같은 경우는 알고리즘만 이해하고 있으면 BFS처럼 틀에 끼워 넣는 것이기 때문에 어렵지 않은 것 같다라는 생각이 들었다. 하지만 그 말은 꾸준히 익혀놓지 않으면, 결국에는 까먹는다라는 뜻인데 이런 것들이 한둘이 아닐텐데 다 외워놓는게 맞나? 싶기도하다. 12월까지는 이런 부분을 판단해서 확실한 선택과 집중을 해야될 것 같다.

 

재귀

정말 많은 시간을 투자해서 공부했지만, 투자 시간 대비 제일 안는다고 느껴지는 부분이다.

귀납법적 사고가 중요하다고 해서 종이에 써보기도하고, 귀납식 비슷하게 알고리즘을 그려보면서 풀어보기도 하는데 왜 이렇게 어렵게 느껴지는지 모르겠다. 다른 알고리즘은 공부하고 풀어보다보면 '명확하게 내 생각을 알고리즘으로 구현했다'라는 느낌을 받는데, 재귀는 그런 느낌을 받기가 정말 쉽지 않다. 그냥 직관적으로 보이는데로 구현하면서 풀고있는데, 제대로 사고하고 접근하는 법을 배우고 싶다.... 하다보면 알게되려나 싶기도하고....

 

 

후기

내 지식의 깊이가 너무 얕다고 느껴지는 한주였다. 지금까지처럼 도중에 또 포기하게되면, 지금보다 깊이가 깊어질수는 없겠다라는 생각이 든다. 원하는 수준에 도달하기에 4개월이라는 시간은 짧다. 안주하지말고 끝까지 열심히해야된다.

'끄적끄적 > 회고록' 카테고리의 다른 글

11월 3주차 회고록  (2) 2022.11.22
11월 2주차 회고록  (2) 2022.11.14

댓글