안녕하세요? 알고리즘을 공부하기 위해 이곳을 찾아 주신 여러분 모두 반갑습니다.
알고리즘이라고 하면, 코딩테스트라고 하면, 왠지 어려울 것만 같고 거부감을 느끼는 분들이 꽤 많으실 겁니다. 알고리즘은 문제를 풀기 위한 일련의 절차나 방법을 말하는데요, 이렇게 들으면 알고리즘이 뭔가 있어 보이고 어려워 보일 수 있지만, 알고리즘은 사실 일상 생활을 하며 자신도 모르게 하는 행동들 역시도 알고리즘이라고 볼 수 있습니다. 예를 한번 들어볼까요?
저는 학교에 가기 위해 집을 나서서 버스 정류장까지 걸어가고, 버스를 타고 가다가 중간에 다른 버스로 갈아타고, 정류장에 내려서 학교까지 걸어갑니다. 매일 아침 '통학'이라는 문제를 해결한다고 볼 수 있습니다. 뿐만 아니라 요리를 한다거나, 게임을 한다거나 할 때도 여러분은 자신도 모르게 알고리즘이란 절차에 따라 문제를 해결하고 있습니다. 이렇게 알고리즘은 일상과도 밀접한 관련이 있습니다.
그렇다면 이러한 알고리즘은 어떻게 공부하면 좋을까요?제가 처음 알고리즘 공부를 시작하였을때 이런 질문을 하곤 했습니다.
- '어떻게 공부를 해야 좋을까요?'
- '어떻게 하면 알고리즘 실력이 금방 늘 수 있을까요?'
돌아오는 대답은 제각각이었지만 다음 두 내용은 빠지지 않는 단골 조언입니다.
- '문제를 많이 풀어보세요.'
- '주변에 자신보다 실력이 좋은 사람에게 많이 물어보세요.'
알고리즘을 공부하는 방법은 물론 상상도 못 할 만큼 다양하겠지만, 이 두 가지는 많은 사람들이 알고리즘 공부를 어떻게 해야 하는지 물어볼 때 답변해줄 수 있는 정석이라고 생각합니다. 또한, 비타알고를 함께 하는 여러분도 비타알고에서 만나는 문제를 넘어 더 다양하고 많은 문제를 풀이하며 질문을 멈추지 않으시길 바랍니다. 자, 이제 강의를 시작하려고 합니다. 시작하기 전에 먼저 여러분이 어떤 수준의 수강생인지 확인해볼 필요가 있습니다. 제가 생각하기에 비타알고는 아래의 분들에게는 적합하지 않을 수 있습니다.
- 프로그래밍 경험이 전혀 없으신 분
- 대회를 준비하기 위한 어려운 난이도의 강의를 찾고 있으신 분
이 강의가 알고리즘 공부를 시작하는 분, 어쩌면 공부를 시작하긴 했지만 갈피를 못 잡고 있는 분, 기업 코딩 테스트를 준비하는 분에게 많은 도움이 되었으면 좋겠습니다.