Ch 01. 프로그래밍과 친해지자 - 03. 프로그래밍 샌드위치 만들기]
사람들은 어떠한 작업을 할 때 추상적으로 예시를 들어도 과정을 대부분 이해한다.
하지만 로봇(프로그램)은 정확한 절차와 과정을 이해하지 못하기 때문에 알아들을 단계까지 지식을 세분화 해야한다.
예시 2) 가장 큰 숫자를 뽑는 경우
[4] [1] [5] [2] [3]
X:
Y:
numbers란 이름으로 5개의 숫자가 주어진다.
x는 1이다.
y는 numbers 내 숫자의 갯수를 넘기 전까지 (반복문)
numbers의 x번째 숫자가 y보다 크다면(조건문)
y를 numbers의 x번째 숫자로 바꾼다.
x를 1증가시킨다.
y를 제출한다.
예시 3) 가장 큰 수와 가장 작은 수의 합=?
위의 조건에서 가장 작은 수를 담을 'z'라는 변수를 선언한다.
x는 1이다.
z는 numbers의 x번째 숫자이다.
x가 numbers 내 숫자의 갯수를 넘기 전까지
numbers의 x번째 숫자가 z보다 작다면 z를 numbers의 x번째 숫자로 바꾼다.
x를 1증가시킨다.
예시 4) 코드 변환
numbers란 이름으로 5개의 숫자가 주어진다.
x는 1이다.
y는 numbers의 x번째 숫자다.
z는 numbers의 x번째 숫자다.
x가 numbers 내 숫자의 갯수를 넘기 전까지
numbers의 x번째 숫자가 y보다 크다면 y를 numbers의 x번째 숫자로 바꾼다.
numbers의 x번째 숫자가 z보다 작다면 z를 numbers의 x번째 숫자로 바꾼다.
x를 1증가시킨다.
예시 5) 숫자들을 큰 순서대로 나열해보기
[5] [4] [3] [2] [1]
ordered'라는 빈 배열을 만든다.
numbers 안에 든 숫자의 갯수가 0이 될 때까지 x는 1이다.
y는 numbers의 x번째 숫자다.
x가 numbers 내 숫자의 갯수를 넘기 전까지
numbers의 x번째 숫자가 y보다 크다면 y를 numbers의 x번째 숫자로 바꾼다.
x를 1증가시킨다.
numbers에서 y에 해당하는 숫자를 빼낸다.
ordered'에 y를 추가한다.
ordered를 반환한다.
+알고리즘 검색을 통해 자료 알아보기!
Ch 01. 프로그래밍과 친해지자 - 04. 엘리베이터의 알고리즘을 살펴보자]
엘리베이터의 상태
멈춰있음/움직이는 중
버튼들의 상태
안에서 누름/상/하
[코드 1]
눌려 있는 버튼이 없는 상태에서는 엘리베이터는 새로 눌리는 첫 버튼의 층으로 최종 도착지가 결정되고 그에 따라 상승 또는 하강 상태로 바뀐다.
[코드 2]
엘리베이터가 이미 있는 층의 버튼은 눌리지 않는다.
[코드 3]
엘리베이터가 이동 중일 때 이동방향의 최종지점에 도달하기 전까지는 이동 방향을 바꾸지 않는다.
+수정 엘리베이터가 특정 방향의 최종 목적지에 도달하면 다른 눌려 있는 버튼이 하나 이상 있을 시 이동 방향을 바꾸고, 그 방향의 가장 끝점으로 최종 목적지를 변경한다.
[코드 4]
엘리베이터가 이동 중 버튼이 눌린 층이 있을 때 엘리베이터의 이동방향이 다르지 않다면(즉 방향이 같거나 중립이라면)정지한다.
[코드 5]
엘리베이터가 이동 중일 때 이동방향의 최종 목적지보다 멀리 있는 층의 버튼이 눌리면 최종 목적지를 그리로 수정한다.
→ 알고리즘 다이어그램으로 표현해보자!
알고리즘이 작동 하는 때
1. 버튼이 눌릴 때
2. 엘리베이터가 각 층에 도달할 때
+ 상황에 따른 다이어 그램은 정리해서 블로그에 올리기!
'Coding > Fast Campus' 카테고리의 다른 글
[Fastcampus] 프로그래밍 유치원 온라인 완주반 (1주차) Ch 01-05 (0) | 2020.09.10 |
---|---|
[Fastcampus] 프로그래밍 유치원 온라인 완주반 (1주차) Ch.01-01,02 (0) | 2020.09.07 |