반응형


알고리즘(라틴어독일어: Algorithmus, 영어: algorithm 알고리듬[*]IPA[ǽlɡərìðm])이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 수학과 컴퓨터 과학에서 알고리즘이란 작동이 일어나게 하는 내재하는 단계적 집합이다. 알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다.

출처 : https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98


알고리즘은 문제 해결 능력이다. 

문제를 푸는 방법에는 여러가지 방법이 있을 수 있다. 하지만 각각의 해결 방법들은 비용과 시간이 다르다. 우리는 최소한의 비용과 시간으로 문제를 해결하기 위해서 알고리즘을 적용한다. 


얼마전에 회사에서 보는 알고리즘 시험을 드디어 통과를 했다. 거의 1년 만이다. 매주 주말마다 출근을 하는 것처럼 하루를 소비했다. 

처음 시작할때에는 분명 의욕이 있었다. 개발을 하니깐 전혀 관련이 없는 것도 아니고 배워둬서 나쁠것도 없다고 생각을 했다. 백준 온라인 저지나 정올 사이트에서 문제를 하나씩 풀어보기도 했다. 항상 잘 풀리지는 않았지만 그래도 한문제 해결하고 나면 뿌듯함이 있었다.  그런데 기간이 일주일, 이주일, 한달, 두달 길어지니깐 피로가 쌓였다. 주말에 계속 나가는것에 대한 육체적 피로도 있었지만 정신적 피로가 더 컸다. 


'내가 이것을 풀수 있을까? 공부해서 뭐해? 어짜피 시험 문제 나오면 못푸는데? 이건 내가 풀수 있는 문제가 아니야.'


이런 생각들이 점점 커져갔고 어느샌가 문제 풀이 연습도 안하게 됐다. 매주 보던 시험을 한달에 2번정도로 줄였다. 예전에는 문제를 풀어보려고 끝까지 낑낑대며 머리를 쥐어 짰다면 이제는 딱 봐서 못풀겠다 싶으면 그냥 나왔다. 이런 패턴이 반복되니 기존에 알고 있던 알고리즘들 조차도 구현 방법이 가물가물 해져갔다. 언젠가는 합격하긴 하겠지라는 밑도 끝도 없는 이상한 믿음만 있을 뿐이었다. 


그러던 중 한번의 기회가 찾아왔고 그 기회를 운좋게 잡았다. 풀긴 풀었지만 이건 내가 생각해봐도 운이 좋았다고 밖에 할수 없었다. 기존에 봤던 시험보다는 확실히 난이도가 낮았다는 느낌이 들었다. 문제를 읽으면서도 이건 풀겠는데 라는 생각이 들었다. 테스트케이스가 다 맞고도 혹시나 해서 몇번을 더 돌려봤다. 시간도 범위 안에 잘 들어온다. 그리고는 난 시험장을 나왔다. 그리고 시험을 통과를 했다. 


아주 긴 시간이 걸렸지만 어쨌든 결과물을 만들어냈다. 하지만 뭔가 씁쓸한 아쉬움이 남는다. 분명 알고리즘을 하나씩 배워나가고 문제를 푸는게 싫지는 않다. 재미있다. 하지만 재미있는 일이 어느 순간 재미 없는 일이 되었다. 시험이라는 울타리가 없었다면 좀더 재미있게 공부도 하고 토론도 했을것 같다는 생각이 들었다. 


올해 들어서 알고리즘 관련 책들을 쳐다보지도 않았는데 시험을 합격한 이후에 관련 책을 읽기 시작했다. 정말정말 아이러니 하다. 지긋지긋 했던 "시험" 이 끝났기 때문에 이제는 즐길수 있을 만큼 여유가 생긴것 같다. 다시 되찾은 즐거움을 소중히 하고 앞으로도 내가 생각한 즐거움 들이 사라지지 않게 잘 지켜나가야 겠다.



728x90
반응형

+ Recent posts