개발일지_210423

Gooder·2021년 4월 23일
0

개발일지

목록 보기
3/28

알고리즘

알고리즘 문제풀이를 독학으로 하다보니 루즈해지고, 손에 잘 안잡혔다. 특히 도대체 뭐부터 풀면서 코딩테스트를 대비를 해야하지?라는 생각이 들면서 괜히 머리만 더 아프고 그랬다.
그러다가 우연히 인스타에서 스파르타 코딩클럽 강의를 접했고, 수업을 들었다.
이전까지 명확하게 알지 못했던 부분들은 더 자세하게 알고, 새롭게 알게된 내용들까지 잘 숙지할 수 있었고, 어떤 상황에서는 어떤 자료구조를 사용하면 좋은지에대한 정리를 할 수 있는 좋은 기회였다.
이 강의를 통해서 문제를 풀어나가는 인사이트를 얻었다.
특히, 항상 코딩테스트를 보거나 알고리즘 문제를 풀다가 만났던 고질적인 문제인 "중간에 꼬여서 방법은 맞는데 못풀기"에대한 해결방법을 찾을 수 있었다.
너무 알고리즘을 멋지고 간결하게만 풀고싶다는 생각에 너무 돌아가거나 체계화도 안시키고 바로 문제로 들어가서 타이핑부터 시작하는 것이 가장 큰 원인이였고 그에대한 해결책을 찾을 수 있었다.

그 방법은 아래와 같았다.
1. 문제를 정확하게 읽으면서 조건과 해야할 것으로 나눈다.
2. 해야할 것을 보면서 어떻게 구현할 수 있을지 생각해본다.
ㄴ 보통 문제 속에 힌트가 다 있다.
3. 입력의 크기를 보고서 제한되는게 있을지 생각해본다.(ex. 입력의 사이즈가 작은 경우에는 노가다, 4차원 배열 등등..)
4. 일단 먼저 구현할 내용을 체계적으로 정리한다. 가장 좋은 것은 flow chart일 것 같다.
5-0. 해야할게 많거나 반복되는 작업이 필요한 경우는 함수로 따로 분리해준다.
5-1. 하나씩 구현하면서 조건들을 놓친 것

이렇게만해도 이전에는 감도 안오거나 중간에 멘붕이 오던 문제들도 이전보다는 쉽게 풀 수 있었다.

아직 알고리즘에대해서는 더 배우고 익혀야할 것이 많지만 알고리즘 문제에대한 인사이트와 함께 개발자로서 조금 더 성장하게된 계기가 된 것 같다.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.

0개의 댓글