알고리즘
알고리즘은 문제해결 과정을 묘사하는 것으로 어떤 일을 수행하는 일련의 명령어의 집합이라 할 수 있으며 모호하지 않고 이해하기 쉽게 명확해야 한다.
알고리즘의 특성
알고리즘을 작성하기 위해서는 문제를 풀기 위한 입력이 반드시 필요하며 그 결과인 출력이 존재해야 하며, 명령이 수행된 후에는 반드시 종료되어야 하는 유한성과 정확한 출력값을 만들어내야 하는 정확성, 같은 문제에는 모두 적용 가능한 일반성이 있어야 한다.
의사코드
프로그램 명령문 형식을 취하고 각 명령을 사람이 이해하기 쉽게 적당한 뜻을 가진 단어로 나타낸 것이다.
알고리즘이란?
어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 기술한 것
- 어떤 일을 수행할 수 있는 일련의 명령어 또는 규칙의 집합
- 알고리즘을 설계하기 위해서는 해야 할 작업을 명확하게 명시해야 함
- 문제해결이나 처리 과정에서의 순서를 단계적으로 서술
문제를 알고리즘으로 작성하는 과정
- 문제 분석 : 주어진 문제에 대한 논리적 분석을 통하여 핵심 사항들을 분석
- 데이터 수집과 표현 : 문제해결과 관련된 정보들을 수집하며 데이터를 적절한 형태로 표현
- 분해 : 복잡한 문제를 보다 쉽게 다룰 수 있도록 여러 개의 작은 부분들로 쪼개어 분해
- 패턴인식 : 문제 내에서 공통적인 유사성이나 규칙을 찾아냄
- 추상화 : 문제에서 필요 없는 부분들을 걸러내고 복잡한 문제나 아이디어를 단순화
- 알고리즘 : 문제에 대한 단계적인 해결책, 설명, 지시 사항들을 설계
- 평가 : 알고리즘의 정확성, 해답의 적절성, 효율성 등을 최종 점검
알고리즘의 특징
- 입력 : 문제를 풀기 위한 입력이 반드시 필요함
- 출력 : 문제를 해결했을 때 그 결과인 출력이 반드시 존재해야 함
- 유한성 : 알고리즘은 일정한 시간내에 반드시 종료되어야 함, 알고리즘 수행이 끝나지 않거나 매우 오래 걸리면 해를 얻을 수 없음.
- 정확성 : 주어진 문제에 대한 정확한 출력값을 만들어야 함
- 일반성 : 같은 유형의 문제에 모두 적용 가능
알고리즘의 표현 방법
- 순서도(Flow Chart)
- 문제 해결 과정을 기호와 도형을 사용하여 표현하는 방식
- 의사코드(Pseudocode)
- 프로그램 명령문 형식을 취하고 각 명령을 사람이 이해하기 쉽게 적당한 뜻을 가진 단어로 나타냄