[개발일지]210813_TIL : 알고리즘 문제풀이에대한 생각

Gooder·2021년 8월 13일
1

개발일지

목록 보기
14/28

최근 알고리즘 문제를 많이 풀어보면서 마주친 문제 상황들에대해서 정리해보고 어떻게 해결할 수 있을지 생각해봤습니다.

알고리즘 풀 때의 문제점

1. 메모를 하지않는다.

저는 자주 문제를 어떻게 풀 것인지에대한 전략을 대략적으로만 세우고 바로 코드를 작성하는 경우가 있습니다. 보통 이런 경우에는 논리가 간단하면 문제가 없는데, 조금이라도 복잡해지면 풀면서 엉뚱한 방향으로 코드를 짜기도합니다.
그리고 생각해낸 풀이도 메모를 해놓지않아서 중간에 이상한 방향으로 빠지는 경우도 많았습니다.
이를 해결하기 위해서 코드를 작성하기 전에 종이에 메모를 하고 그 메모를 기반으로 코드를 작성하는 습관을 만들고 있습니다.

2. 한 번에 해결하려한다.

코드를 작성할 때, 단계별로 테스트를 하거나 메서드로 빼서 기능 단위로 테스트를 하면서 작성하면 디버깅 할 때도 편할텐데, 처음부터 끝까지 코드를 다 짜고 출력을 해보고 오류를 수정하려하니 불필요한 부분을 수정하는 등 코드를 점점 미궁 속으로 빠뜨리는 경우가 정말 많았습니다.
그래서 저는 이 문제를 해결하기위해서 1번에서 말했던 문제의 정보들을 잘 메모하고 기능 단위로 구현해서 테스트하는 습관을 들이려고 합니다.

3. 문제의 조건을 놓친다.

문제가 길어지면 조건을 다 파악하지않고 풀이에 들어가는 경우가 많았습니다. 그러다보니 혼자서 착각해서 이해한 문제의 조건이 있거나 엉뚱한 방향으로 코드를 작성해서 코드를 전부 지우는 일도 있었습니다.
이 문제점은 심각한 문제라서 지금 가장 신경쓰는 부분입니다.
문제에서 주어진 조건과 요구사항을 따로 메모해서 빼먹은 것은 없는지 확인하려합니다.

4. 비슷한 문제의 함정에 빠진다.

입력의 형태나 문제의 흐름이 비슷하면 기존에 풀었던 접근 방식이나 풀이법에 갇혀서 빠져나오지 못해서 불필요하게 시간을 더 쓰는 경우도 있었습니다. 분명히 비슷한 부분은 있겠지만 같은 문제가 아니라는 생각을 반드시 가질 필요가 있습니다. 비슷한 문제로 배웠던 것들은 문제를 푸는 방법으로 잡기보다는 풀이의 방향을 잡는 참고점 정도로만 생각하는게 좋을 것 같습니다.

5. 풀이를 모른다.

이 경우는 공부를 하면 해결할 수 있다고 생각합니다.

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

0개의 댓글