Web/모두를 위한 컴퓨터 과학

1-3. 알고리즘

gorae_lulu 2022. 12. 30. 23:30

학습 목표

  1. 우리가 일상생활에서 하는 일들을 컴퓨터가 이해할 수 있는 알고리즘으로 표현할 수 있습니다.
  2. 효율적인 알고리즘에 대해 설명할 수 있습니다.

 

 

알고리즘

 

전 강의에서 숫자, 글자, 색깔 등을 컴퓨터가 이해할 수 있는 2진법으로 표현 것을 배웠음.
이 것은 입력(input)에 해당하는 것.

이제는 출력(output)에 대해 이야기를 해보면.
어떻게 입력(input)에서 출력(output)을 얻을 수 있을까?
컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정이다.
알고리즘은 입력(input)에서 받은 자료를 출력(output) 형태로 만드는 처리 과정을 뜻함.

즉, 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열.

이러한 일련의 순서적 규칙들을 어떻게 나열하는지에 따라 알고리즘의 종류가 달라지고,
같은 출력값이라도 알고리즘에 따라 출력을 하기까지의 시간이 다를 수 있음.

 

 

의사코드

위와 같은 알고리즘은 아래와 같은 의사코드라는 방식으로 보다 명료하게 정리할 수 있음.

의사코드는 필요한 행동이나 조건을 잘 설정하여 컴퓨터가 수행해야 하는 일을 절차적으로 파악할 수 있게 도와준다.

의사코드를 보면 한 번씩 들어봤을 C언어나 파이썬과 같은 언어에서도 볼 수 있는 여러가지 공통점이 있다.

 

 

 

노란색으로 강조된 부분들은 앞으로  함수 (functions). 함수는 컴퓨터에게 이 경우에는 사람에게 무엇을 할지 알려주는 동사와 같다.

 

 

 

다음으로 노란색으로 강조된 부분들은 조건이라고 부를 것.이 것은 여러 선택지 중 하나를 고르는 것이다.

 

 

 

 

앞서 말한 결정을 내리기 위한 질문이 필요합니다. 이것을  불리언 (Boolean)이라함. 답이 Yes(예) 또는 No(아니오) 혹은 True(참) 또는 False(거짓)으로 나오는 아니면 2진법에서 0또는 1로 나오는 질문을 뜻한다.

 

 

 

 

마지막으로 노란색으로 강조된 부분은  루프 (loop)라함. 이 것은 뭔가를 계속해서 반복하는 순환.

 

 

 

 

 

 

 

참고.

https://www.youtube.com/watch?v=6hfOvs8pY1k 

 

https://www.boostcourse.org/cs112

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org

 

 

 

 

생각해보기


1) 친구와 1부터 100까지 숫자 중 1가지 숫자를 맞추는 스무고개 게임을 하려고 합니다. 이때 사용할 알고리즘을 의사코드로 표현하면 어떻게 될까요?

 

1.   1~100 범위 설정. 기회 20회 설정.

2.  중위수(50)를 선택한다.

3.   50이면 종료.

4.  아니라면 중위수이상인지 아래인지 묻고,

5.  중위수 아래라면 아래 중 또 절반 중위수를 다시 선택한다.

6.         중위수가 맞다면 종료.

7.          3번부터 반복

8.  그렇지 않고 중위수 위라면 위 중에 절반 중위수를 다시 선택.

9.         중위수가 맞다면 종료.

10.        3번부터 반복

 

'Web > 모두를 위한 컴퓨터 과학' 카테고리의 다른 글

2-2. 문자열  (0) 2022.12.31
2-1. C 기초  (0) 2022.12.31
1-4. 스크래치: 기초  (0) 2022.12.30
1-2. 정보의 표현  (0) 2022.12.30
1-1. 2진법  (0) 2022.12.30