2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법(C,C++,Python,JAVA)

2.1 알고리즘이란?

원당컴퓨터학원 2021. 2. 5. 21:55

목표

  • 알고리즘이 무엇인지 알아 본다.
  • 알고리즘을 표현하기 위한 방법으로 순서도의 작성법에 대해 알아 본다.

 

알고리즘이란?

  • 어떤 문제를 해결하기 위한 절차나 방법
  • 입력,출력,명확성,유한성,효율성이 있어야 한다.
    • 입력 : 외부에서 제공되는 자료가 0개 이상 제공된다.
    • 출력 : 적어도 2개 이상의 서로 다른 결과를 내어야 한다.( 즉 모든 입력에서 하나의 출력이 나오면 안됨)
    • 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성
    • 유한성 : 유한번의 명령을 수행 후 종료된다.
    • 효율성 : 모든 과정은 명백하게 실행가능(검증가능) 한것이어야 한다.

 

좋은 알고리즘이란?

  • 정확성 : 적당한 입력에 대해서 유한 시간내에 답을 산출하는가? 를 판단.
  • 작업량 : 전체 알고리즘에서 수행되는 가장 중요한 연산들만으로 작업량을 측정
  • 기억장소 사용량 : 수행 과정에서 필요한 저장공간
  • 최적성 : 그 알고리즘보다 더 적은 연산을 수행하는 알고리즘은 없는가? (단, 최적이란 가장  '잘 알려진' 이 아닌 '가장 좋은' 의 의미이다.)
  • 시간 복잡도 : 최적의 시간으로 연산을 수행하는 알고리즘인가?(단, 빠른 시간안에 해결이 된다고 해도 정확성이 떨어진다면? 혹은 정확성은 약간의 오차가 발생하는데 시간 차이가 많이 발생한다면?)

 

알고리즘을 나타내는 방법

  • 순서도(Flow Chart) : 알고리즘을 여러 종류의 상자와 이를 이어주는 화살표를 이용해 명령의 순서를 보여주는 표현 방법
  • 의사코드(Pseudo Code) : 특정 프로그래밍 언어의 문법을 따라 씌여진 것이 아니라 일반적인 언어로 코드를 흉내내어 알고리즘을 써 놓은 코드

 

 

순서도란?

  • 알고리즘을 표현하는 방법
  • 알기 쉽도록 약속된 기호로 순서가 있는 그림으로 표현
  • 순서가 있는 그림

  • 앞에서 살펴 본 라면을 끓이는 알고리즘을 순서도로 표현하면 다음과 같다.

 

 

알고리즘과 순서도의 관계

 

순서도의 기본개념

 

 

순서도의 작성의 기본사항

  • 순서도는 시작 기호에서 출발하여 완료 기호로 마친다.
    •    시작 기호 안에는 알고리즘 이름을 기록하기도 한다.
  • 기호와 기호 사이는 흐름선으로 연결하여 작업의 흐름을 명시한다.
  • 흐름선의 방향은 가급적 위에서 아래로 ,왼쪽에서 오른쪽으로 향하도록 한다.
    •   반복 구조 등 특별한 경우는 예외로 한다.
  • 흐름선은 가급적 교차되지 않도로 하여 혼동을 피한다.
    •  둘 이상의 흐름선이 합류되어야 하는 경우에는 결합 기호를 사용한다.
  • 값을 보관하고 처리하기 위하여 적절한 변수를 사용한다.
  • 같은 종류의 여러 값들을 한꺼번에 보관하고 처리하기 위해서는 배열 변수를 사용한다.
  • 사용할 변수(특히 배열변수)는 준비 기호 안에 선언하며, 필요하다면 초깃값도 배정한다.
  • 작업 과정이 길거나 복잡하면 나누어 작성한 후 연결 기호를 사용하여 연결한다.

 

이 문서는 원당컴퓨터 학원에서 학생들과 같이 공부하기 위해 작성된 문서입니다.

오늘도 최선을 다하는 우리 학생들을 응원합니다.

 

인천 서구 검단신도시 원당컴퓨터학원

 

 

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글

프로그래밍언어 문법 목차  (0) 2024.03.18
1.5 아스키코드(ASCII CODE)  (3) 2021.04.13
1.4 서식문자  (4) 2021.03.08
1.3 변수와 상수  (6) 2021.03.03
1.1 프로그래밍 언어란?  (9) 2021.01.29