개발기초

알고리즘: 알고리즘의 의미와 필요성(개발자 입문)

Veams 2022. 11. 22.

알고리즘이란?

특정 문제를 해결하기 위해, 입력된 자료를 바탕으로 원하는 출력을 유도하는 규칙의 집합이다.

알고리즘은 여러 단계의 유한 집합으로 구성되며, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다.

 

즉,

어떤 문제가 있을 때, 그것을 해결하기 위한 여러 동작들의 모임이다.

하나의 문제를 해결하기 위해서 다양한 해법이 존재할 수 있다.

중요한 점은 다양한 해법 중에 어떤 것이 가장 효과적인 방법인지 고려해야한다.

 

보유하고 있는 자원(시간, 노력, 금전)의 투입에 따라 효과적으로 산출량을 만들어내는 방법은 달라질 수 있으며 투입과 그 산출의 가장 최적점을 찾는 어떤 방법이 있을 수 있다.

 

알고리즘을 공부할 필요성

개발자는 프로그램을 만드는 직업이며, 좋은 개발자가 되려면 좋은 프로그램을 구현할 줄 알아야 한다.

좋은 프로그램은 무엇인가? 적은 용량, 비용, 성능을 이용하여, 빠른 속도로 수행되는 프로그램이다.

이러한 프로그램을 만들기 위해서는 특정 자료구조나 접근방법을 사용해야 한다.

다시 말해, 좋은 프로그램을 만들기 위해서는 여러 자료구조와 방법들을 배워야 한다.

 

새로운 구조나 방법을 찾아볼 수도 있지만,

기존에 현업에서는 개발자들이 많이 사용하는 자료구조와 알고리즘을 배워볼 수 있다.

 

많은 IT 기업과 스타트업에서 코딩테스트를 개발직군의 구직자에게 요구하는 것이 최근의 트렌드이다.

개발자로 취업을 하려는 학습자라면 필수관문이라고 생각해도 좋다.

 

하지만 엄청난 난도의 문제를 출제하진 않는다.

기초 지식과 해결책을 바탕으로 적절한 사고를 할 수 있는지 검증하려는 의도를 가지고 있기에

준비를 한다면 충분히 해결할 수 있다.

 

목차

1. 시간/공간 복잡고, 알고리즘 구현력 기르기

2. 어레이, 링크드 리스트, 이분탐색, 재귀

3. 정렬, 스택, 큐, 해쉬

4. 힙, BFS, DFS, Dynamic Programming

5. 종합 알고리즘 문제 풀이

 

 

 

 

-스파르타코팅클럽 박현준 튜터님의 강의를 참고하였습니다.

댓글