취준을 맞이하게 되면서 이전보다 좀 더 본격적으로 코딩 테스트를 준비하게 되었다. 실제로 어떤 기업들이 코테를 시행하는지, 각 기업이 어떤 코테 환경을 제공하는지도 알아보기 시작했다. 그러면서 내가 지원하고 싶은 대부분의 기업이 프로그래머스 라는 플랫폼에서 코딩테스트를 진행한다는 것을 알게 되었다.
이전까지는 주로 백준을 풀었다. 백준은 입력값을 받는 코드까지 사용자가 직접 입력해야 해서 살짝 복잡한 감이 있었다. 그래서 백준은 플랫폼에서 바로 풀지 않고 vscode를 사용해서 문제를 풀었다.
그렇다고 프로그래머스에서의 문제풀이 경험이 없던 것은 아니였다. 이전에 파이썬으로 알고리즘 문제를 풀 때, 몇 번 이용해본 적 있었다. 하지만 이제는 파이썬이 아닌 자바를 사용하기에, 테스트겸 한 문제를 풀어보았다.
뭐지,, 뭔가 어렵다. 문제 풀이법은 떠오르는데, 어떻게 구현해야 할 지 머리속이 하얘졌다.
실제로 코딩테스트에서 이랬다면 트라우마로 남지 않았을까 싶다. 알고리즘 공부를 아예 안하진 않아서 큰 걱정을 하지 않았는데 이건 그것과는 별개의 문제임을 깨달았다. 그래서 앞으로의 계획의 방향을 변경하였다.
1. 알고리즘은 적어도 하루 한 문제
이전에도 몇번 알고리즘 스터디를 진행한 적이 있었다. 근데 중간에 공부를 하지 않은 공백기간이 길어서 매번 새로배우는 느낌이었다. (물론 이전의 스터디가 아예 쓸모없었다는 것은 아니다.)
개인적으로 알고리즘 이론은 한번 배워두면 장기기억으로 오래 남지만, 실제 코테에서 추가적으로 필요한 역량들은 금방 잊혀지기 쉽다고 생각한다. 여기서 말하는 역량에는 문제를 읽고 어떤 접근 방식을 택할지 정하는 능력, 알고리즘을 실제 코드로 구현해내는 능력을 말한다.
이런 생각을 토대로 알고리즘에서 가장 중요한 것은 아래 두 가지라고 결론내렸다.
- 알고리즘에 대한 깊은 이해
- 꾸준함, 반복
2. 블로그에 간단한 정리
처음 이 블로그는 개발하며 깨달은 점들을 정리하려고 만들었다. 그때는 그 '개발'의 범위를 내가 공부하는 프론트엔드 정도로 생각했었다. 다른 프론트엔드 관련 포스팅들을 보면서 "남의 포스팅 형식을 베끼지 않고, 다양한 자료와 경험을 통한 나만의 이해를 바탕으로 영양가 있는 포스팅을 작성하자" 라고 생각해서 나름 포스팅 하나하나를 완벽하게 작성하려 노력했다.
하지만 이제 '개발'의 범위를 알고리즘 공부까지 넓혀보려 한다. 추가로 알고리즘 포스팅에 한해서는 완벽주의를 버릴 예정이다. 일반 포스팅과는 목적을 다르게 가져가기 위함이다. 알고리즘 포스팅의 목적은 다음과 같다.
오늘은 이런걸 썼다.
매일쓰는 가벼운 일기처럼 작고 하찮은(?) 발자취를 많이 남길 예정이다. 알고리즘에서 쓰는 언어가 주언어가 아니다보니 가끔 구현에 대한 겁을 먹을 때가 있다. 그런 두려움을 줄여주는 기록의 역할을 했으면 좋겠다.
3. 반복이 살길이다.
지금 내 상태를 보니, 문제를 한 번 풀었다고 넘겨버리지 않아야 한다. 처음 문제를 풀 때,
- 조금이라도 버벅거렸거나
- 다른 사람 풀이를 참고했다면
완전히 내 것으로 만들기 위해 몇 번이고 반복해서 풀어보는 것이 중요하다. 또 다 푼 후에는 꼭 다른사람의 코드들과 비교해가며, 더 효율적이고 깔끔한 코드가 있는지 체크해봐야 한다.
'Algorithm' 카테고리의 다른 글
| Programmers Level1 다트게임 (0) | 2021.04.28 |
|---|---|
| Programmers Level1 크레인 인형뽑기 게임 (0) | 2021.04.26 |
| Programmers Level1 두 개 뽑아서 더하기 (0) | 2021.04.13 |