[0] 알고리즘이란?
1. 정의
-문제해결의 절차를 위한 명세서
-전체적인 문제해결을 위한 설계도
-설계도는 문제해결을 위한 첫번째 단계부터 마지막 단계까지 모든 순서가 연결되어있는 명세서.
-명세서를 한눈에 알아 볼 수 있도록 한 것이 순서도
2. 자료구조와 알고리즘 관계
자료구조를 만드는 과정은 알고리즘의 일부이다.
자료구조를 어떻게 짜느냐에 따라 알고리즘의 설계도가 달라진다.
3. 예시
알고리즘을 위와 같이 말(문장), 코드(Code), 순서도로 작성할 수 도 있다.
C언어로 코드를 검증해보자
[1] 순서도의 개념
1. 알고리즘
(1) 의미
프로그램을 작성하기 전에 전체적인 설계도를 그려보는 행위
(2) 표현방법
- 일상 생활 언어 (~한다)
- 고급 언어로 코드 작성 ( C언어, Python 등)
- 순서도 (Flow chart)
(3) 사용하는 명령
- 만연체 X. 간결, 정확, 중복 없이
- 무한반복 안되게 주의. 유한 반복
- C언어로 작성 후 프로그램을 실제로 실행시켰을 때 결과값이 나올 수 있는 활용이 되어야함.
2. 순서도
(1) 의미
- 알고리즘(설계도)는 문제해결을 위한 첫번째 단계부터 마지막 단계까지 모든 순서가 연결되어있는 명세서.
- 명세서를 한눈에 알아 볼 수 있도록 한 그림이 순서도
(2) 순서도가 알고리즘을 구현하기 용이한 이유
- 전체 과정을 한 눈에 확인
- 그림이기 때문에 타인에게 전달 용이
- 절차가 한 눈에 파악이 가능한 그림을 활용하기에 프로그램 코딩에 유용
[2] 순서도의 종류_3
0. 들어가기
시. 일 . 상
-
시스템 순서도: 컴퓨터 시스템의 활용
-
일반 순서도
-
상세 순서도
⇒일반ㆍ상세 순서도 공통점: 실제 프로그래밍 실제로 프로그래밍 과정에서 코드가 어떻게 처리되어서 어떤 절차로 진행되는지 표시
1. 시스템 순서도
(1) 특징
- 시스템 순서도의 기호는 모두 시스템과 관련됨.
- 컴퓨터 자원을 활용 관련이어서 알고리즘 구현 전 단계에 활용된다.
- 실제 프로그래밍(코드작성)이 아니라 컴퓨터 시스템의 활용을 나타낸다.
- 시스템 순서를 가장 먼저 작성 후 컴퓨터 자원의 활용을 작성 후 실제 코드 작성은 일반 순서도와 상세 순서도를 이용한다. 특히, 상세 순서도를 사용.
(2) 작성 목적
-
연관성 파악
대상 업무가 전체적으로 보았을 때 컴퓨터 시스템 내부에서 어떻게 일이 이루어지는지 연관성을 파악하기 위해
-처리과정: 컴퓨터 시스템 내부에서 어떻게 일이 이루어지는 지
-전체적인 연관성: 컴퓨터 시스템 자원을 어떻게 활용할 것 인지
-
프로그램 수, 프로그램 작업순위(우선순위) 파악
대규모 프로젝트에서 여러 프로그램들을 분류하는 작업이 있는 경우 작성한 프로그램 수, 작업 순위를 파악 목적 -
컴퓨터 시스템 내에서 작성한 프로그램들이 어떤 순서로 실행될 것인지, 실행번호, 입력번호, 출력번호를 관리한다.
-
컴퓨터 시스템의 자원을 이용하기 때문에 자원의 처리시간을 본다
-
컴퓨터를 활용해서 업무를 처리할 때 컴퓨터 시스템이 해야할 전체적인 업무를 파악해야한다.
-
기계처리 시간 산출 목적.
각 시스템 별로, 컴퓨터 별로, 프로그램 별로, 각각 단위별로 어떻게 순서도로 일이 이루어지고, 어떻게 합해지고, 분류되어서 컴퓨터 자원을 이용할 것인지 보여준다.
2. 일반 순서도
(1) 특징
- 프로그램 전체 내용을 큰 제목들만 개괄적으로 설명
- 따라서 일반순서도를 가지고 코드 작성(코딩)하기엔 무리
3. 상세 순서도
(1) 의미
코딩을 하기 위해 자세한 일의 처리 절차를 작성한 순서도
프로그래밍을 하기 위한 가장 구체적인 순서도
(2) 특징
- 코드의 업무처리 절차를 상세하게 자세하게 다 표시함.
- 한 단계마다 프로그램 코드를 만들면 실제로 프로그램이 구동될 수 있도록한다.
- 프로그램을 작성하는 데 최종 검토 자료
- 프로그램 전체의 설계를 보여주기 때문에
(3) 작성방법
프로그래밍할 수 있도록 상세히 작성
[3] 순서도의 기본형_3가지
순서도의 기본형
0. 들어가기
직. 선. 반
- 직선형 (순차형): 순서대로 일이 진행되는 형태. 주어진 계산을 하는 프로그램에서 사용
- 선택형: 사용자가 조건에 따라 선택. 여러가지의 처리절차 필요. 조건문
- 반복형: 사용자가 선택하는 것이 아닌 어떠한 조건이 만족될 때까지 반복. 조건 따짐.
1. 직선형
(1) 사용상황
- 두 변수들의 값 교환 알고리즘
- 조건이나 판단이 필요없는 경우
- 순서대로 순차적으로 문제를 해결하는 경우
(2) 방법
임시로 저장할 변수에 값을 할당한다.
(3) 주의사항
- 변수 A = 20. 변수 B = 20 일 떄, A에 B의 20을 집어 넣고, B에 A의 10을 넣으면 되겠네 ⇒ A = B ; 는 B에 넣을 A값이 B의 값으로 덮여씌워 지면서 20이 없어져 버린다.
2. 선택형
(1) 사용상황
- 예금과 출금 처리 알고리즘
- 조건이 주어지고 상황에 따라서 A를 선택할 수도, B를 선택할 수 도 있다.
(2) 특징
- 사용자의 선택에 따라 처리과정이 둘로 나뉨
3. 반복형
(1) 사용상황
- 학생들의 총점 계산 알고리즘 (4번 줄)
- 어떤 작업이 충족될 때까지 반복적으로 수행할 경우
[+] 알고리즘 작성 시 먼저 할 일
(1) 필요한 변수의 개수, 변수의 이름 정하기
4. 참고_용어
-
분기: 갈래가 둘로 나뉘는 상태
-
슈도 코드(pseudocode): 순서도를 가장 표준화된 코드형태로 나타낸 것
-
= (대입연산자)
-
==(등가연산자)
-
EOF (End Of File): C언어에서 운영체제와 상관없이 파일의 끝에 도달했을 떄 언제나 반환하는 특별한 값. -1 나타냄 키보드 입력시 입력의 끝 알려주기 : 윈도우 Ctrl Z Enter, 유닉스 Ctrl D
[참고]
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
[4] 순서도 작성 예제
순서도는 약속된 기호, 그림을 활용하는 것이라 어떻게 약속되어있는 지 알아야한다.
1. 최댓값(Max) 구하기
직사각형: 대입, 연산 등 처리
마름모: 조건의 내용
2. 순서도에 이용되는 기호
(1) 흐름선
기호와 기호를 연결해 주는 선
(2) 단말기호
시작과 끝을 알리는 기호
(3) 처리기호
연산, 값을 대입, 무언가를 실행하고 값을 처리할 경우
(4) 입출력 기호
입력을 받을 때. scanf_s
(5) 결합기호 (동그라미)
서로 다른 순서도를 결합시켜주는 기호
A순서도에서 산출된 값 value가 B 순서도의 w 란 자리에 대입되게 하기
(6) 페이지 연결기호
페이지 끝이 A이고, 페이지가 연결되는 부분이 A이다.
(7) 사전에 정의된 처리 기호
A라는 계산 절차가 복잡하여 미리 사전에 따로 만들어 놓고, A 계산을 활용하는 일이 생길 때 기호를 써서 따로 정의된 부분에서 실행 시킨다.
'Algorithm' 카테고리의 다른 글
[알고리즘] 퀵 정렬(Quick Sort) 정리 및 예제 (0) | 2022.01.06 |
---|---|
[알고리즘] 선택정렬 (Selection Sort) 정리 및 예제 (0) | 2022.01.05 |
댓글