[중학교 정보] 3단원-알고리즘과 프로그래밍-02 알고리즘

3단원-알고리즘과 프로그래밍

02 알고리즘



1. 알고리즘

- 알고리즘이란 문제를 해결하기 위한 논리적인 절차나 방법을 말한다.

예. 자물쇠의 잠금을 푸는 상황, 공식에 맞추어 수학 문제를 푸는 상황, 요리를 하는 상황

- 알고리즘은 '입력, 출력, 명확성, 유한성, 수행가능성'이라는 조건에 따라 작성해야 한다.

왜냐하면 컴퓨터는 인간과 달리 모호한 표현을 이해하지 못하고 프로그램 수행 시 자원이 한정되어 있기 때문이다.


** 알고리즘 : 누구나 동일한 입력으로 같은 결과를 낼 수 있도록 상세해야 한다.


** 입력 : 외부에서 입력되는 자료가 0개 이상이어야 한다.

** 출력 : 수행 결과로 최소 1개 이상의 결과가 나와야 한다.

** 명확성 : 수행 과정을 모호하지 않은 명령으로 구성되어야 한다. 의도한 바를 이해할 수 있도록 명확하게 서술한다.

** 유한성 : 수행 명령은 유한 시간 내에 종료되어야 한다. 무한 반복이 발생하면 안 된다.

** 수행가능성 : 모든 명령어는 실제로 수행 가능하고 검증 가능해야 한다.


알고리즘 구조

  • 순차 구조 : 프로그램의 흐름이 한 방향으로 이어지는 구조다. (예. 음식 레시피, 계단 오르기 등)
  • 선택 구조 : 조건에 따라 흐름이 바뀌는 구조다. 판단 결과에 따라 명령어를 선택적으로 수행한다. 조건은 예, 아니오로 판단할 수 있어야 한다. 
  • 반복 구조 : 동일한 동작을 여러 번 수행하는 경우에 사용하는 구조다. 반복 구조를 사용하면 간결성과 효율성을 높일 수 있다. 
** 약속된 기호와 선을 통해 순서도로 알고리즘을 표현하면 의미를 명확하기 전달할 수 있다. 




2. 알고리즘 분석


문제 해결 방법

*** 완전 탐색법 

: 문제를 해결할 수 있는 모든 경우를 빠르게 탐색해 본 다음, 조건을 만족하는 최적의 해를 선택하는 것

*** 나누어 뽑기 

: 문제를 여러 작은 문제로 나눈 뒤 각각을 해결하여 원래의 문제를 해결하는 것

*** 되돌아가기 

: 문제 해결이 잘 안되는 경우, 이전의 상태로 돌아가 다른 해결책을 찾는다.

*** 규칙 찾기 

: 문제의 조건을 고려하여 전체적으로 파악하여 반복과 같은 규칙이나 원리, 관계성 등을 찾아 문제를 해결하는 방법


*** 효율적인 알고리즘이란 문제를 정확하고 효율적으로 해결하면서도 다양한 상홍에 유연하게 대응할 수 있어야 한다.


효율적인 알고리즘을 사용하기 위한 객관적인 분석 기준

정확성, 단순성, 작업량, 기억 공간 사용량, 최적성

정확성 : 입력에 대한 결과가 올바르게 출력되는지

단순성 : 알고리즘이 이해하기 쉽도록 표현되었는지

작업량 : 수행 과정에서 발생하는 작업량이 어느 정도인지

기억 공간 사용량 : 알고리즘을 수행하기 위해 필요한 기억 공간이 어느 정도인지

최적성 : 같은 문제를 해결하는 데 연산을 더 적게 수행하는 알고리즘이 없을 때 충족되는 기준이다.



<정보 디지털교과서>

길벗_2022개정 중학교 정보



[중학교 정보] 3단원-알고리즘과 프로그래밍-01 추상화 | 무한연습

[중학교 정보] 3단원-알고리즘과 프로그래밍-02 알고리즘 | 무한연습

[중학교 정보] 3단원-알고리즘과 프로그래밍-03 프로그래밍 | 무한연습


[중학교 정보] 4단원-인공지능-01 인공지능의 이해 | 무한연습

[중학교 정보] 4단원-인공지능-02 인공지능의 활용 | 무한연습


[중학교 정보] 5단원-디지털 문화 - 01 디지털 사회의 이해 | 무한연습

[중학교 정보] 5단원-디지털 문화 - 02 디지털 윤리와 민주 시민 | 무한연습



다음 이전