반응형

안녕하세요.

프로그래밍을 능숙하게 사용하기 위해서 그리고 조금 더 나은 코드를 작성하기 위해서 알고리즘 문제를 풀고 있습니다. 알고리즘은 leetcode에서 풀고 있는데요. 주중, 하루 한 문제씩은 풀자라는 마음으로 10번 문제를 넘겼습니다 :)

그래서 1 ~ 10번 문제까지 풀면서 든 생각과 앞으로의 다짐을 다시 다져 보고 갈려고 해요.

10번까지 풀면서 스스로 풀지 못한 문제도 더러 있었습니다. 또는 이 문제는 생각보다 쉽네라는 문제도 있었고요. 알고리즘 문제를 처음 풀 때 for문과 그리고 for문의 연속이었습니다. 물론 답은 나옵니다. 하지만 우아하지는 않았습니다. 문제를 딱 보고 그대로 생각나는 대로 로직을 작성했거든요. 답이 통과가 되면 다른 사람 풀이법을 확인했습니다. 라는 소리가 절로 나옵니다. 정말 기발하거든요. 어떻게 이렇게 생각을 하지 그리고 배웁니다. 다음번엔 나도 이런 방향으로 생각하고 이렇게 풀 수 있다면 훌륭한 방법들은 제 것이 되는 것이니까요. 성취감과 풀어가는 재미가 있습니다.

 

위와 같이 프로그래밍을 로직적으로 배우는 건 물론입니다. 더불어 문제를 풀면서 프로그래밍 언어적으로도 정말 많이 배웁니다. python 언어를 사용한다면 정렬 / 리스트 중 가장 긴 요소 / 몫과 나머지 구하기 이런 방법들을 말이죠. 처음에는 이런 언어의 테크닉적인 기술이 부족해 구글을 많이 찾았습니다. 물론 지금도 부족해서 계속 찾아보고 있습니다. 이후에 어느 정도 선에 오른다면 지금 보다는 구글 검색을 하지 않고 더욱 빠르게 작성할 것입니다. 알고리즘 문제를 푸는 이유 중 하나죠. 언어를 능수능란하게 사용하기 위해서 알고리즘 문제를 풉니다. 알고리즘 문제를 풀지 않는다면 정말 효과적으로 다양하게 언어를 사용하기가 쉽지 않습니다. 일반적인 프레임워크를 배우는 건 언어를 배우는 것과는 다르거든요.

하나의 언어를 기준으로 알고리즘 문제를 꾸준하게 풀고 필요로 하는 언어도 하나 정해서 복습도 할 겸 병행해서 풀면 더욱 효과적이겠습니다.

 

앞으로는

- 주 중 하루에 한 문제 풀기 (잘하고 있습니다)

- 1번부터 복습 시작 (반복 학습이 필요합니다. 앞에 내용을 잊고 있거든요)

- 다른 언어로 작성해보기 (다른 언어도 잘 사용하고 알고리즘 복습도 하는 효과를 봅니다)

 

취업을 위해서가 아닙니다. 프로그래밍을 업으로 살려면 알고리즘 문제 연습은 계속되어야겠습니다.

시중에 나와 있는 알고리즘 책들도 많고 강의도 많습니다. 하지만 스스로가 풀지 않으면 무슨 소용일까요? 스스로가 생각해보지 않으면 무슨 소용이 있을까요? 물론 책과 강의를 보더라도 도움이 되겠지만 스스로가 더욱 잘하고 싶고 본질적으로 볼 때 우리가 직접 코드를 작성하기를 원하니까요. 그래서 우리는 한 문제, 한 문제씩 직접 풀어 봐요^^

다음 알고리즘 점검은 30번 문제까지 풀고 이후에 하겠습니다.

감사합니다 :)

 

* 알고리즘 사이트 - leetcode

https://leetcode.com/

반응형

+ Recent posts