수업3일차복습정리/알고리즘에대한이해 및 자바실행과정의개념

박경환·2021년 10월 29일
0

코딩수업

목록 보기
3/8

엘레베이터 알고리즘

문제를 의사코드로 작성해보기

  1. 정확한 상황(엘리베이터의 수, 가능한 동작, 층 수, 승객 수, 처음 위치), 초기 조건 표현하기
  2. 동작하는 논리(알고리즘)을 생각해보기
  3. 추가 옵션(출근 시간 설정), 추가 동작(콜의 우선순위) 생각해보기
  4. 테스트를 위한 상황 가정하기
  5. 모든 가능성있는 상황을 생각해보기 (ex: 엘리베이터에 승객이 정확히 동일한 시간에 도착했을 때, 랜덤으로 할 것인지?, 둘 이 같은 층에서 탔을 때, 다른 방향의 층을 눌렀을 때)
  6. 효율적으로 운영하는 방법 생각하기
  7. 함축할 수 있는 문장으로 표현하기
  8. 사용자측면에서 생각하기 (ex: 유스케이스)
엘리베이터가 한 개만 설치되었을 때

	1. 엘리베이터에 승객이 없다면 현재층에 대기한다. 대기상태
	2. 엘리베이터가 대기상태일 때, 탑승을 원하는 승객이 있다면 승객이 있는 층으로 간다.
	3. 엘리베이터가 움직이기 시작하면 동작상태
	4. 엘리베이터가 동작상태일 때, 경로상에 있는 층에서 같은 방향으로 이동하고자 하는 승객이 있을 경우 해당 층에서 멈춘다.
	5. 엘리베이터가 동작상태일 때, 경로상에 있는 중간 목적지에서 멈추고자 한다면 해당 층을 중간 목적지로 설정하고 중간 목적지에서 멈춘다.
	6. 엘리베이터가 동작상태일 때, 현재 목적지와 같은 방향이지만 더 먼 목적지로 이동하고자 할 경우, 목적지를 갱신하고, 기존의 목적지는 중간 목적지가 된다.
	7. 엘리베이터가 목적지에 도착한다면 대기상태가 된다.
	8. 엘리베이터가 동작상태일 때, 경로상에 있지 않다면 엘리베이터가 대기상태가 되거나, 같은 경로로 이동하게 될 때까지 기다린다.

ex) 현재 엘리베이터는 3층에서 대기상태, 승객은 1층에서 탑승하여 5층으로 이동 희망
엘리베이터는 동작상태가 되고, 1층으로 이동한다.
엘리베이터는 5층에서 승객을 내려주고, 대기상태가 된다.

ex) 현재 엘리베이터는 1층에서 5층으로 동작상태, 승객은 2층에서 탑승하여 4층으로 이동 희망
엘리베이터는 같은 경로상에 있는 2층에서 멈추고, 승객을 태운다.
엘리베이터는 경로상에 있는 4층에서 멈추고, 승객을 내린다.
엘리베이터는 목적지인 5층에서 멈추고, 승객을 내린다.

ex) 현재 엘리베이터는 5층에서 7층으로 동작상태, 승객은 3층에서 탑승하여 1층으로 이동 희망
엘리베이터와 같은 경로가 아니므로, 3층의 승객은 대기하게 되고 엘리베이터는 목적지로 이동한다.
엘리베이터는 7층에서 멈춰 승객을 내려준 다음 대기상태가 된다.
3층에서 1층으로 탑승을 희망하는 승객이 있기 때문에 다시 동작상태가 되어 3층으로 이동한다.

엘리베이터가 두 개가 설치되었을 때

	1. 탑승을 원하는 승객이 있다면, 대기상태에 있는 엘리베이터가 움직인다.
	2. 둘 다 대기상태일 경우, 가장 가까운 거리에 있는 엘리베이터가 움직인다.
	3. 둘 다 동작상태일 때, 같은 경로상에 있는 엘리베이터가 있다면 해당 엘리베이터가 멈춘다.
	4. 둘 다 동작상태일 때, 같은 경로상에 있는 엘리베이터가 하나도 없다면 대기상태가 되거나 같은 경로상에 있는 엘리베이터가 있을 때까지 대기한다.

JAVA실행과정

소스코드—컴파일러—Class—JAVA—아카이브 라이브러리—실행요청—JVM

Class

  • 구성
    1. package
    2. import
    3. Class { }
  • 목적
    1. 객체적 사용 : 객체원형모델
    2. 비객체적사용 : C와같은역할(전역함수,전역변수 조사용)
  • 구성멤버 데이타(변수), 함수(메소드)
  • class 작성 공통 규칙
    1. 이름은 대문자로 시작한다
    2. { } 시작과 끝
    3. 이름과 파일이름이 동일
  • 선언부

profile
지식0부터 코딩전문가까지 틀린것 지적및 가르쳐주시면 감사하겠습니다!

0개의 댓글

관련 채용 정보