주석을 이용한 알고리즘 문제 해결

김성수·2023년 5월 22일
1

알고리즘

목록 보기
17/28

들어가면서

생각의 흐름을 글로 적어나가다 보면 어느 부분에 구멍이 있는지 찾게되는 경우가 잦다.
주석으로 생각의 흐름을 적어나가면서 코드를 작성해나가면 논리적으로 문제를 해결하는 실력이 향상될 수 있다.



그림을 이용한 문제 풀이의 문제점.

고민한 내용을 글로 적을 때 메모장을 이용하면 좋다. 하지만, 코딩테스트를 볼 때는 메모장을 이용할 수 없다.

보통 나는 아이패드에 그림을 그려가면서 알고리즘 문제를 푸는 편인데,

그림만으로 내 생각을 정리하기가 어려울 때가 많다.

그것도 알고리즘마다 다른데, DFS나 BFS는 트리형식으로 그림을 그려나가면서 알고리즘을 풀어나가면 논리적으로 문제를 접근하기 수월해진다.

하지만 greedy 같은 경우 현재 위치에서 조건문을 세우는게 중요한 알고리즘이기 때문에 그림으로 표현하기 어려운 면모가 있다.

그렇다고, 손으로 글을 적어가면서 문제를 푸는건 비효율적이다.



주석을 이용한 문제 풀이

주석을 이용해서 문제를 풀면 문제 요구사항을 글로 명시화시키기 때문에 생각의 흐름을 묶어둘 수 있는 장점이 있다.

이를 화두라는 용어로 표현할 수 있다.

생각의 흐름은 묶어두지 않으면 이리 튀고 저리 튀기 때문에 묶어줄 필요가 있는데

글을 적는게 큰 도움이 된다.

코딩에서는 주석이 이와 같은 효과를 준다.


생각의 흐름을 파악할 수 있다

내 생각의 흐름을 명시화 시킴으로써 내 논리가 제대로 흘러가고 있는지, 오점은 없는지를 파악하기 용이하다.

그리고 주석에 주어진 요구사항을 하나하나 코드로 해결해나가면서 나중에 핵심 주석만 남겨두고 주석을 모두 지운다면 그거대로 쏠쏠한 재미가 있다.



주석과 그림 그리기 어느 것을 선택할 것인가?

알고리즘 마다 다르다

DFS나 BFS는 트리를 그려가면서 문제에 접근하면 문제 풀이가 많이 수월해진다.

다양한 문제를 많이 풀어보면서 어떻게 접근하는게 효율적일지 지속적으로 파악해야 하는 것은 과제이다.



마지막으로..

예전 배민 코테에서 1등으로 합격한 사람이 주석으로 문제를 풀어나가셨다고 한다.

주석으로 자신이 고민한 내용을 모두 적고 하나하나 코드로 변환해나가면서 문제를 풀이해나가셨다고 한다.

문제를 다 풀고서 불필요한 주석은 모두 제거하고 필요한 주석만 남겨놓으셨다고 한다.

코드 작성도 잘하셨지만, 그 과정자체가 너무 좋게 평과되어 만점을 받으셨고

레전드로 평가받았다고 하신다..

wow

profile
깊이 있는 소프트웨어 개발자가 되고 싶습니다.

0개의 댓글