Professional Documents
Culture Documents
TLQKF
TLQKF
TLQKF
문제 해결과 프로그래
01. 추상화
02. 알고리즘
03. 프로그래밍
밍
>>>학습의 연계
02 알고리즘
다양한 제어 구조를 이용하여 알고리즘을 설계하고, 수행 시간의 관점에
서 알고리즘을 분석한다.
http://www.greenhospital.co.kr/bbs/view.php?&bbs_id=sub09_01&page=&doc_num=50
알고리즘 설계
학습 요소 ▪ 알고리즘
▪ 순차 구조, 선택 구조, 반복 구조
성취 기준
1) 알고리즘 이해
◆ 알고리즘(algorithm)이란?
❖ 문제를 논리적으로 해결하기 위한 절차나 방법
❖ 어떤 문제를 해결하기 위해 명확히 정의된
유한 개의 규칙과 절차의 모임
❖ [예]
▪ 레시피(음식 조리법)
▪ 비상 대피 요령
▪ 수학 문제 풀이 등
1 알고리즘 설계
◆ 알고리즘의 조건
❖ 입력: 외부에서 제공되는 0개 이상의 입력 필요
❖ 출력: 적어도 한 가지 이상의 결과 산출
❖ 명확성: 각 명령이나 연산자들은 모호하지 않고
명확
❖ 유한성: 해당 알고리즘의 명령대로 수행하고
난 후, 반드시 종료
❖ 실행 가능성: 알고리즘의 모든 명령은 실행이
가능해야
1 알고리즘 설계
❖ 라면 레시피의 조건 예
면, 분말 스프, 건더기 스프, 물,
입력
달걀 등의 식재료가 필요하다.
물의 양, 스프의 양, 불의 세기, 조리
명확성 시간 등이 명확하게 제시돼야 한다.
◆ 알고리즘(algorism)
• 아부 압둘라 무함마드 이븐 무사 알콰리즈미(페르시
아: یمزراوخ, 아랍어: ىسوم نب دمحم هلال دبع وبأ, يمزراوخل, 780년경~
850년경)라는 페르시아의 한 수학자 이름에서 유래
• 알콰리즈미
✓페르시아 최초의 수학책을 만듦
✓인도에서 도입된 아라비아 숫자를이용하여 최초로 사칙 연산
(덧셈, 뺄셈, 곱셈, 나눗셈)을 만들고 0과 위치값을 사용
✓‘대수학의 아버지’로 불리기도 함
✓‘대수학’을 뜻하는 단어 algebra는 그의 저서 <aljabr wa
almuqabala>로부터 기원
헬로! EBS 소프트웨어! - 대소동 6. 알고리즘(2) (9:47)
2) 알고리즘 표현 방법
◆ 문제 해결의 세부 단계들을 구체적으로 포함
◆ 간결하고 명확하게 표현하고 이해할 수 있어야 함
◆ 그림과 기호를 많이 사용
◆ 표현 방법: 자연어, 의사 코드, 순서도 등
◆ 자연어, 의사 코드, 순서도의 공통점
❖ 특정한 문법적 지식 없어도 쉽게 사용 가능
❖ 이해하기 쉬움
1 알고리즘 설계
◆ 자연어
두 수를 입력받아 합을 계산하고, 그 합을 2로 나누
예 었을 때, 그 결과가 100 이상이면 결과를 출력하고,
100 미만일 경우에는 처음부터 다시 수행한다.
▪ 장점: 알고리즘을 쉽게 표현 가능
장단점
▪ 단점: 의미를 정확하게 전달하기가 힘듦
1 알고리즘 설계
◆ 의사 코드
◆ 의사 코드
▪ 장점
✓ 프로그래밍 언어의 문법에 대한 간단한 지식
만 있어도 쉽게 표현 가능
✓ 자연어보다 의미를 정확하게 전달
장단점
▪ 단점
✓ 기술하는 사람에 따라 표현 방식이 다름
✓ 알고리즘의 각 단계를 직관적으로이해하기어
려움
1 알고리즘 설계
◆ 순서도
표현 방법 미리 정의된 기호와 도형들을 이용하여 표현
장단점
▪ 장점: 알고리즘의 각 단
계를 직관적으로 이해
가능
예
▪ 단점: 복잡한 알고리즘
을 표현하기에 비효율
적인 경우 있음
순서도에 사용되는 기호와 의미
1 알고리즘 설계
3) 제어 구조
◆ 제어 구조란?
❖ 프로그램에서 실행되는 문장들의 실행 순서를
제어하는 구조
◆ 제어 구조의 표현
❖ 순차 구조, 선택 구조, 반복 구조
▪ 순차 구조: 알고리즘의 기본 틀
▪ 선택·반복 구조: 실행 여부나 횟수가 명시된 조건에
의해 결정
▪ 반복 구조: 반복 조건의 검사 시점에 따라 ‘선검사
후처리’, ‘선처리 후검사’의 두 형태로 구분
1 알고리즘 설계
거북이의 이동 궤적을 제어해
선이 그려지게 만드는 다양한 알고리즘
❖ 순차 구조
설명 예시 순서도
문제 해결을 위해 거북이를 움직여 세 변의 길이
필요한 명령들이 정해 와 내각의 각도가 모두 다른
진 순서대로 수행되는 삼각형을 그리고자 할 때, ‘
구조 거북이의 전진 거리와 회전
각도를 달리하여원하는삼각형
그리기
1 알고리즘 설계
❖ 선택 구조
설명 예시 순서도
주어진 조건을 비교· 1을 입력하면 좌회전 후 50
판단하여 선택 결과에 만큼 전진,
따라 처리하는 과정을 2를 입력하면 우회전 후 50
다르게 하는 구조 만큼 전진,
3을 입력하면 그냥 50만큼
전진을 하는 거북이가 있다
고 할 때(1, 2, 3 중 하나만 입
력할 수 있음),
입력 값을 달리하여 거북이
를 도착 지점으로 안내
1 알고리즘 설계
❖ 반복 구조
설명 예시 순서도
특정 조건을 만족할 때 거북이의 전진과 우회전을 4
까지 같은 명령을 반복 번 반복하여 사각형 그리기
하여 실행하는 구조로,
반복 횟수는 조건에 따
라 결정
• 선검사 후처리
• 선처리 후검사
1 알고리즘 설계
◆ 반복 조건의 구분
❖ 선택, 반복 구조의 공통점
▪ 관련 작업의 실행 여부가 실행 횟수가 명시된 조건에
의해 결정
❖ 반복 조건의 검사 시점에 따른 반복 구조의 구분
▪ 선검사 후처리
▪ 선처리 후검사
1 알고리즘 설계
❖ 선검사 후처리
설명 예시 순서도
반복 조건을 먼저 육각형을 그릴 때,
비교한 후 조건을 반복 횟수를 체크하여
처리 횟수가 6번을 넘지 않았으면
전진과 60도 회전을 반복하여
그릴 수 있음
1 알고리즘 설계
❖ 선처리 후검사
설명 예시 순서도
먼저 명령(들)을 처리 육각형을 그릴 때,
한후 먼저 전진과 60도 회전을
반복 조건을 비교하여 하고,
계속 반복 여부 결정 이 동작을 6번 반복했는가를
판단하여 계속
실행 여부를 결정 가능
1 알고리즘 설계
❖ 제어 구조 조합의 예
▪ 일반적 알고리즘의 기본 틀 : 순차 구조
▪ 제어 구조 조합
• 일부 단계의 작업들이 선택 구조나 반복 구조,
혹은 그들이 조합된 형태로 기술
1 알고리즘 설계
▪ 제어 구조 조합의 예 *MOD(A, j)
•MOD 연산을 실행하는
함수
•실행 결과 A를 j로 나눈
나머지 값을 돌려줌
학교 등교 과정을 알고리즘으로 표현하기
■ 문제 상황
알고리즘
표현