졸업한 후 취업을 미뤄두고 공부하는 시간을 가지기로 마음을 먹은 후 매일 알고리즘 문제를 1개씩이라도 꾸준히 풀어야겠다는 목표를 잡았지만 마음처럼 되지 않았다. 사실 공부 방법을 몰라서 시작하기 너무 막막했던 것 같다. 문제가 조금만 길어져도 겁이 났고 어려울 것이라 지레짐작한 후 도전을 망설였다. 그래서 항해 2주차를 기회로 알고리즘 공부법을 좀 깨달을 수 있기를 기대하였다.
시작에 앞서 2주차는 걷기반과 달리기반으로 나누어 진행되었는데 나는 자바를 모르는 상태는 아니였기 때문에 달리기반으로 선택하였고 새로운 팀원들과 일주일간 열심히 진행하였다. 달리기반의 경우 일주일동안 총 40문제를 해결해야했다. 처음엔 이게 가능할까 했는데 첫 날 난이도가 중인 문제들을 15문제나 풀었다. 하나씩 풀다보니 자신감도 생겼고 나름 재미도 있었던 것 같다.
로직을 상태와 행위로 이루어진 객체로 만드는 것으로 현실세계를 프로그래밍으로 옮겨와 현실세계의 사물을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍 하는 기법
자바 코드 또는 애플리케이션을 구동하기 위한 런타임 환경을 제공하는 엔진
운영체제나 CPU 등 시스템 환경에 관계없이 어디서나 자바언어를 실행할 수 있게 해주는 역할을 하는 것으로 자바만의 독특한 기능
이전에는 문제가 조금만 길어지고 복잡하다고 느껴지면 지레겁먹고 포기하는 경향이 있었는데 일주일간 여러 문제를 풀면서 아무리 길고 복잡한 문제도 하나씩 차근차근 해결하다보면 풀린다는 것을 몸소 체험하면서 겁먹지 않고 도전하는 태도를 배운 것 같다.
알고리즘 문제는 푸는데에서 끝내는 것이 아니고 다른 사람들의 코드도 살펴보고 더 좋은 방법은 무엇인지 좀 더 효율적인 방법은 무엇인지 생각해보는 시간에서 더 많은 것을 배울 수 있는 것 같다. 같은 문제라도 사람들마다 해결한 방식도 다르고 사용한 자료구조도 다른 것이 너무 신기하기도 했고 존경스러운 마음까지 들기도 했다. 앞으로도 꾸준하게 계속 공부해야겠다는 생각이 들었다.
난이도가 중하, 중, 중상, 상 이렇게 나누어져 있었고 난이도 상 문제를 해결하고 많이 뿌듯했는데 알고보니 level1 문제였다는 것을 확인하고 조금 실망했지만 아직 공부할 것이 많다는 것을 다시 한 번 깨닫게 된 계기가 된 것 같다.