학습 목표
- 우리가 일상생활에서 하는 일들을 컴퓨터가 이해할 수 있는 알고리즘으로 표현할 수 있습니다.
- 효율적인 알고리즘에 대해 설명할 수 있습니다.
알고리즘
전 강의에서 숫자, 글자, 색깔 등을 컴퓨터가 이해할 수 있는 2진법으로 표현 것을 배웠음.
이 것은 입력(input)에 해당하는 것.
이제는 출력(output)에 대해 이야기를 해보면.
어떻게 입력(input)에서 출력(output)을 얻을 수 있을까?
컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정이다.
알고리즘은 입력(input)에서 받은 자료를 출력(output) 형태로 만드는 처리 과정을 뜻함.
즉, 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열.
이러한 일련의 순서적 규칙들을 어떻게 나열하는지에 따라 알고리즘의 종류가 달라지고,
같은 출력값이라도 알고리즘에 따라 출력을 하기까지의 시간이 다를 수 있음.
의사코드
위와 같은 알고리즘은 아래와 같은 의사코드라는 방식으로 보다 명료하게 정리할 수 있음.
의사코드는 필요한 행동이나 조건을 잘 설정하여 컴퓨터가 수행해야 하는 일을 절차적으로 파악할 수 있게 도와준다.
참고.
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 |