본문 바로가기
Development/Algorithms

algorithms/알고리즘이란?

by raphael3 2019. 12. 30.
반응형

                                                                                                                                                         

                                                                                                                                                                                                                   

                                                                                                                                                         

                                                                                                                                                                                                              

                                                                                                                                                                                                                   

알고리즘이란, 컴퓨터가 어떤 문제를 해결하기 위한 자세한 방법이다. 따라서 컴퓨터가 이해할 수 있는 방식으로 정리되어 있는 해결 방법으로 기술되어야 한다.

같은 문제를 해결하기 위해서도 다양한 알고리즘이 존재할 수 있다.

그렇다면 다양한 알고리즘 중에 좋은 알고리즘이란 무엇일까? 좋은 알고리즘은 두 가지 조건을 충족시켜야 한다.

  1. 문제를 해결하는 것
  2. 문제를 더 잘 해결하는 것

알고리즘 프로그래밍 언어를 이용하여 구현된다. 그래서 프로그래밍과 알고리즘은 뗄래야 뗄 수 없는 관계다.

 

유능한 개발자들의 대부분은 알고리즘적 사고력을 갖추고 있고, 대표적인 알고리즘 정도는 꿰고 있다.

개발자가 되면 이런 식의 대화가 오간다:

"여기서는 BFS 알고리즘이 적합하다."

"Divide and Conquer 방식으로 접근해보자."

따라서 알고리즘에 대한 지식 없이는 개발자와 원활한 소통이 어렵다.

 

Google, Facebook, Amazon 등 대기업들을 포함한 대부분의 회사에서는 개발자를 뽑을 때 알고리즘 테스트를 진행하는 이유다. 그중에서 대기업들은 특히 알고리즘을 거의 가장 중요한 평가 기준으로 본다.

'실무적인 경험이 부족하더라도 알고리즘적 사고력이 검증된 지원자라면, 나머지는 충분히 가르칠 수 있다'라고 판단을 하는 것이다. 반대로 알고리즘을 잘 모르는 개발자라면 좋은 대우를 받기 어렵다는 뜻이기도 하다.

반응형