더북(TheBook)

31.1 알고리즘

알고리즘(풀이법)이란 프로그래밍을 할 때 생긴 문제의 해결 방법을 체계적으로 정리한 것이라고 볼 수 있습니다. 주어진 문제를 어떻게 풀이하는지에 따라 문제를 해결할 수도 있고 그렇지 못할 수도 있습니다. 이러한 이유로 프로그램 작성에서 알고리즘은 중요한 자리를 차지합니다.

알고리즘은 ‘문제 해결 능력’입니다.

프로그램의 가장 작은 단위는 일반적으로 입력(input) → 처리(process) → 출력(output) 단계를 거치는데, 여기에서 처리 단계가 알고리즘 단계라고 생각하면 됩니다.

입력: 자료 구조(data structure)가 담당하는 영역입니다. 간단히는 변수 및 배열의 데이터를 사용하고 나아가서는 컬렉션, 파일, 데이터베이스의 데이터를 사용하는 영역입니다.

처리: 알고리즘 처리 영역입니다.

출력: 화면에 보이는 UI(User Interface)를 담당하는 영역입니다. 일반적으로 콘솔, 데스크톱, 웹, 모바일 등 영역으로 나누어서 가공된 데이터를 출력합니다.

 

가장 처음에 배워야 하는 학습용 알고리즘은 다음과 같습니다. 주어진 자료를 가지고 가장 큰 값을 구하거나(최댓값), 가장 작은 값을 구하거나(최솟값), 합을 구하거나(누적합), 자료 수를 구하거나(횟수, 건수), 평균을 구하거나(평균), 순서대로 정렬하는(정렬) 것 등입니다. 표 31-1에 필자가 알고리즘 입문용으로 가장 적합하다고 생각하는 내용을 정리해 보았습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.