CS/모두를 위한 컴퓨터 과학 CS50

[CS50]알고리즘과 의사코드(algorithm and pseudo code)

mabb 2023. 2. 24. 17:02
반응형

모두를 위한 컴퓨터 과학(CS50 2019)를 바탕으로 부족한 CS지식을 다져보고자 정리해본다.
=======================================================================

입력받은 자료를 출력형태로 만드는 처리과정, 알고리즘

▷알고리즘
알고리즘이란 문제 해결을 위한 방법을 말한다. 입력 받은 자료를 출력형태로 만드는 처리과정으로, 입력받은 데이터를 출력형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순차적 나열이 바로 알고리즘이다.

▷알고리즘에서 중요한 것
똑같은 결과를 내더라도 더 정확하고 더 효율적인 것이 있다. 정확성과 효율성이 높은 알고리즘이 좋은 알고리즘이다. 예를들어 3,000페이지의 전화번호부에서 '홍길동'의 전화번호를 찾는다고 할 때 방법은 다음과 같다.
  방법1. 한 장 씩 넘기며 홍길동을 찾는 방법
  방법2. 두 장 씩 넘기며 홍길동을 찾는 방법
  방법3. 절반씩 줄여가며 찾는 방법 (이 경우 정렬이 되어 있어야 가능하다.)
방법1은 홍길동의 이름이 3,000페이지에 있는 경우 3,000장을 전부 확인해야 한다.
방법2는 운이 좋게 홍길동을 찾을 경우 방법1보다 두 배 빠르게 찾을 수 있지만 홍길동을 찾지 못할 수 있다.
방법3은 검색 범위를 절반씩 줄여가며 홍길동을 탐색하는 방법으로 3가지 방법중 가장 효율적이고 정확하다.

▷의사코드(pseudo code)
의사코드는 알고리즘을 명료하게 정리하기 위한 방법을 말한다. 특정 프로그래밍 언어가 아니라 사람의 언어로 알고리즘의 논리적 절차를 작성한 코드를 말한다. 문제 해결을 위해 필요한 행동이나 조건을 절차적으로 작성한다. 방법3으로 '홍길동'의 전화번호를 찾는 방법에 대한 수도코드는 다음과 같다.
  1.전화번호부를 집어든다.
  2.중간을 펼친다.
  3.만약 '홍길동'이 있다면 
      =>탐색을 종료하고 홍길동에게 전화한다.
      만약 '홍길동'이 없다면
      =>정렬 상 홍길동이 포함된 절반의 범위를 선택하고 2번 절차로 이동한다.
의사코드도 함수,조건,루프,불린 등을 이용하여 절차를 작성한다.

반응형