패스트캠퍼스 챌린지 16일차
알고리즘 문제풀이의 주요 전략에 대하여
(1) 반복전략
모든 데이터에 동일한 연산을 수행해야 하는 경우 적합하다. 대표적으로 조건이 충족될 때까지 지속적으로 반복을 수행하는 중첩루프문이 이에 해당. 멱집합 구하기는 이중루프문을 통해 구현할 수 있는 대표적인 문제이다.
(2) 재귀
함수가 자기 자신을 호출하는 것을 재귀라고 한다. 재귀는 중첩루프 알고리즘에 비해 알아보기 쉽지만 자기 자신을 지속적으로 호출한다는 특성상 메모리의 누수가 발생할 가능성이 있으므로 가용자원과 상황을 고려하여 코드를 작성해야 할 필요성이 있다.
(3) 완전탐색
컴퓨터의 연산력을 믿고 모든 경우의 수를 하나하나 순회하며 검사하는 정직한 풀이법. 단순무식하게 보이지만 이런 전략을 사용하는 것이 최선인 문제들도 분명 존재한다.
(4) 휴리스틱
절대적 최선을 구하기 어려울 때, 가능한 최선의 답을 찾는 것을 휴리스틱이라고 한다. 예를 들어 여러 갈래길로 이루어진 지도상에서 가장 효율적인 순회 루트를 짜는 문제. 그리디가 대표적인 휴리스틱 방법론 중 하나이다. 그리디 알고리즘이란 각 단계마다 최선의 선택을 하되, 일단 선택하고 나면 다시 검산을 수행하지 않는 알고리즘이다.
나는 문제를 생각나는 부분부터 두서없이 푸는 습관이 있어서 딱 컴퓨터처럼 융통성없게 작성해야 하는 알고리즘 풀이가 너무 어려웠는데 나같은 초보자를 위해 어떤식으로 알고리즘을 연습해야 하는지부터 명료하게 제시해주는 부분이 좋았다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.