엘리베이터 작동 알고리즘 | [러플] Project08. 엘리베이터 알고리즘1 상위 19개 베스트 답변

당신은 주제를 찾고 있습니까 “엘리베이터 작동 알고리즘 – [러플] project08. 엘리베이터 알고리즘1“? 다음 카테고리의 웹사이트 th.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: th.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 천타컴맹 이(가) 작성한 기사에는 조회수 1,241회 및 좋아요 11개 개의 좋아요가 있습니다.

엘리베이터 알고리즘에 사용할 수 있는 가장 쉬운 접근법으로써 엘리베이터를 이용하려는 사용자가 요 청이 들어온 순서대로 엘리베이터가 출발지로 이동해 사용자를 태우고 사용자의 목적지에 내려준 후 다음 요청을 수행하는 것을 반복하는 기본적인 알고리즘이 다.

Table of Contents

엘리베이터 작동 알고리즘 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [러플] project08. 엘리베이터 알고리즘1 – 엘리베이터 작동 알고리즘 주제에 대한 세부정보를 참조하세요

엘리베이터 작동 알고리즘 주제에 대한 자세한 내용은 여기를 참조하세요.

현대 엘리베이터 작동 알고리즘 정말 개똥입니다. (…) – 클리앙

사는 오피스텔에 현대 엘리베이터 세 대가 있습니다. 근데 정말 알고리즘이 개똥이라 욕하며 살고 있습니다. 상황1) 엘리베이터 1: 1층에서 지하로 …

+ 여기에 보기

Source: www.clien.net

Date Published: 2/28/2021

View: 5760

[C] 엘리베이터 프로그램 – 지나가는 이야기

나의 층에서 가장 가까운 엘리베이터 하나만 움직이며, 만약 두 대의 엘리베티어가 같은 층일 시 1호기가 움직인다. 5. 나의 층수, 각각 엘리베이터의 …

+ 여기를 클릭

Source: passing-story.tistory.com

Date Published: 10/26/2021

View: 7744

프로그래밍과제 – 엘리베이터 알고리즘 [난이도 : 상]

프로그래밍과제 – 엘리베이터 알고리즘 [난이도 : 상]. 개발자개발자 2019. 9. 9. 02:45. 엘리베이터 알고리즘. =================== 기본조건 …

+ 여기에 더 보기

Source: 0dev.tistory.com

Date Published: 4/4/2021

View: 9134

[러플] Project08. 엘리베이터 알고리즘1 213 개의 베스트 답변

근데 정말 알고리즘이 개똥이라 욕하며 살고 있습니다. 상황1). 엘리베이터 1: 1층에서 지하로 …

+ 여기에 자세히 보기

Source: ppa.baannapleangthai.com

Date Published: 10/21/2021

View: 7019

엘리베이터 시뮬레이터 만드는 방법 – 공돌이의 노트정리

1 엘리베이터 작동 원리 엘리베이터는 대부분 directional collective control로 작동합니다(Barney, G 2003). … 노트정리/알고리즘 놀이 2014. 6.

+ 자세한 내용은 여기를 클릭하십시오

Source: woongheelee.com

Date Published: 2/5/2022

View: 8995

KR20030044910A – 사이클식 작동 엘리베이터용 급송 알고리즘

사이클식 작동 엘리베이터용 급송 알고리즘{DISPATCHING ALGORITHM FOR CYCLICLY OPERATING ELEVATOR}. 전형적으로, 탑승자들은 에스컬레이터에 의해 몰등과 같은 저층 …

+ 자세한 내용은 여기를 클릭하십시오

Source: patents.google.com

Date Published: 10/24/2021

View: 557

[프로젝트 엘리베이터] 엘리베이터 알고리즘 (feat. 카카오 2차 …

코딩 테스트에서 짰던 코드와 아이디어를 최대한 활용하고 최적화하는 방향으로 진행해보려고 한다. 내가 제출했던 솔루션은 ‘다수결에 의한 작동’이었다.

+ 여기에 더 보기

Source: m.blog.naver.com

Date Published: 7/24/2022

View: 8741

주제와 관련된 이미지 엘리베이터 작동 알고리즘

주제와 관련된 더 많은 사진을 참조하십시오 [러플] project08. 엘리베이터 알고리즘1. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[러플] project08. 엘리베이터 알고리즘1
[러플] project08. 엘리베이터 알고리즘1

주제에 대한 기사 평가 엘리베이터 작동 알고리즘

  • Author: 천타컴맹
  • Views: 조회수 1,241회
  • Likes: 좋아요 11개
  • Date Published: 2020. 7. 10.
  • Video Url link: https://www.youtube.com/watch?v=D-wESBhe0cc

현대 엘리베이터 작동 알고리즘 정말 개똥입니다. (…) : 클리앙

사는 오피스텔에 현대 엘리베이터 세 대가 있습니다.

근데 정말 알고리즘이 개똥이라 욕하며 살고 있습니다.

상황1)

엘리베이터 1: 1층에서 지하로 내려가는 중

엘리베이터 2: 3층에서 위로 올라가는 중

엘리베이터 3: 15층에 서서 놀고 있음.

이때 6층에서 아래로 내려가는 버튼을 누르면 어떤 엘리베이터가 올까요?

정답: 엘리베이터 1번 (!?)

상황2)

엘리베이터 1: 20층에서 놀고 있음.

엘리베이터 2: 4층에서 놀고 있음.

엘리베이터 3: 방금 지하로 내려가는 사람이 타서 문이 닫힘

이때 1층에서 위로 올라가는 버튼을 누르면 어떤 엘리베이터가 올까요?

정답: 엘리베이터 3번이 지하에 다녀오는 동안 엘리베이터 1&2번은 더더욱 열심히 놀고 있음 (…)

버튼을 누른 순간 수치상으로 가장 가까운 층에 존재햇던 엘리베이터만 호출하고 나머지는 그냥 가만히 멍때립니다.

‘지금도 아무 것도 하지 않고있지만, 더 격렬하게 아무 것도 하기 싫다’ 뭐 이런거죠 (….)

아침 출근 시간에 세 층 위에서 출발해 매 층마다 서는 엘리베이터 기다리는 사이에 12층에서 사람이 탄 엘리베이터가 1층으로 직행해서 먼저 내려가는 꼬라지도 여러번 봤고 (….)

저녁 퇴근 시간에 나보다 늦게 1층에 나타나서 내려가는 버튼 누른 인간이 1층에서 바글바글하게 올라가는거 기다리는 사람들을 제치고, 1층에 내려온 텅 빈 엘리베이터 타고 내려가는 어처구니없는 풍경도 여러번 봤습니다. (…..)

대체 현대 엘리베이터 이 그지 똥자루 놈들은 무슨 알고리즘을 만들면 엘리베이터가 이따우로 움직이는거죠!?

[C] 엘리베이터 프로그램

728×90

반응형

엘리베이터에 대한 프로그램을 짜 보도록 하겠습니다.

[상황]

10층 건물에 엘리베이터가 두대(1호기, 2호기)가 있는데, 엘리베이터를 움직이게 하는 버튼은 하나입니다. 그리고 다른 층에서 엘리베이터를 타는 사람은 없습니다. (엘리베이터는 1층에서 10층까지 전층 운행한다.)

[조건]

1. 현재 나의 위치는 키보드에서 직접 입력으로 받는다.

2. 건물은 1층에서 10층까지 입니다. 1~10 사이의 숫자 이외의 숫자나 문자가 입력되면 에러를 발생하고 다시 입력을 받는다.

3. 각각의 엘리베이터의 위치는 랜덤으로 받는다.

4. 나의 층에서 가장 가까운 엘리베이터 하나만 움직이며, 만약 두 대의 엘리베티어가 같은 층일 시 1호기가 움직인다.

5. 나의 층수, 각각 엘리베이터의 층수, 어떤 엘리베이터가 움직였는지 문자로 출력한다.

6. 1, 2호기 엘리베이터가 몇 층에 있었는지를 배열에 10개만 저장하고 이것을 출력한다. 프로그램은 사용자가 0을 입력할 때까지 반복한다. 하지만 0을 입력할 때까지 반복하므로 10개 이상의 데이터가 발생할 수 있다. 따라서 10개 이상이 발생하게 되면 10개만 배열에 저장한다. 그리고 저장된 10개를 출력한다.

먼저 첫 번째 조건인, 키보드에 현재 층을 입력을 받기 위해 정수형 변수를 만들고 scanf_s()함수로 입력을 받는다.

int floor; printf(“What floor are you on ? : “); scanf_s(“%d”, &floor)

현재 위치를 반환하는 함수를 만들었다.

int Location(int number) { return printf(“Your location : %d

“, number); }

다음으로 두 번째, 세 번째 조건을 만족 시키기 위해 if문을 이용한다. 그리고 0을 입력하면 종료되게 만들었다.

(추가로 배열에 엘리베이터의 값들을 저장하였다.)

// 1~10까지의 랜덤한 숫자 생성 el_1 = rand() % 10 + 1; el_2 = rand() % 10 + 1; if (scanf_s(“%d”, &floor) == 0) { // 숫자가 아닌 문자를 입력 받을 시 오류 문구 출력 printf(“Error!!!

“); rewind(stdin); // 입력 버퍼 지우기 printf(”

“); } else { if (floor == 0) { // 0을 입력시 반복문 탈출 printf(”

“); break; } if (floor >= 1 && floor <= 10) { Location(floor); // 현재 위치를 입력받아 리턴하는 함수호출 printf("First elevator : %d \t Second elevator : %d ", el_1, el_2); // 엘리베이터의 정보를 배열에 저장 el_1_array[i] = el_1; el_2_array[i] = el_2; } else{ printf("Error!! "); printf(" "); } } 그리고 네 번째 조건을 만족하기 위해 두 대의 엘리베이터와 나의 층수를 뺀 값에 절대값을 씌워 가장 가까운 엘리베이터가 움직이게 출력하였다. // 두 개의 엘리베이터와 나의 위치를 계산 후 절대값을 이용하여 가까운 엘리베이터를 구함 result_1 = floor - el_1; result_2 = floor - el_2; if (abs(result_1) < abs(result_2)) { printf("Move First elevator."); } if (abs(result_2) < abs(result_1)) { printf("Move Second elevator."); } if (abs(result_1) == abs(result_2)) { printf("Move First elevator."); } 배열의 출력은 for문을 통해 출력을 했다. printf("=====================Result====================="); printf(" First elevator : "); // 반복문을 이용해서 배열을 출력 for (int j = 0; j < 10; j++) { if (el_1_array[j] < 1 || el_1_array[j] > 10) { // 엘리베이터의 위치를 구하는 반복문에서 배열을 꽉채우지 않고 나올시 el_1_array[j] = ‘ ‘; // 아직 안채워진 배열은 공백으로 만듬 } else { printf(“%3d”, el_1_array[j]); } } printf(”

Second elevator : “); for (int j = 0; j < 10; j++) { if (el_2_array[j] < 1 || el_2_array[j] > 10) { el_2_array[j] = ‘ ‘; } else { printf(“%3d”, el_2_array[j]); } } printf(”

“);

전체 코드는 아래와 같다.

#include #include #include // [상황] // 10층 건물 한 건물에 두 대의 엘리베이터가 있다. // 두대(1호기, 2호기)의 엘리베이터는 움직이는 버튼이 하나이다. // 다른층에 엘리베이터는 타려는 사람은 없다. // 1호기는 1층에서 10층까지 움직인다. // [문제] // 1) 현재 나의 위치(층수)는 키보드에서 직접 입력 받는다. // 건물은 1층에서 10츱입니다.이외 층수가 입력되면 에러를 발생하고 다시 입력 받는다. // 단, 0층이 입력될때까지 프로그램은 계속 됩니다. // 나의 위치를 입력 받아 리턴하는 함수를 작성합니다. // 2) 각각의 엘리베이터의 위치(층수)는 랜덤하게 발생합니다.사용자는 엘리베이터의 위치를 알 수 없다. // 엘리베이터 위치발생에 필요한 사항 // #include // #include // srand((unsighed int)time(NULL)); // rand()%10+1 // 3)나의 위치와 가까운 엘리베이터가 움직인다. // 만일 나의 위치와, 엘리베이터 1호기와 2호기의 위치가 서로 같다면 1호기가 움직인다. // 4) 나의 층수, 각각 엘리베이터의 층수를 출력하고 어떤 엘리베이터가 움직였는지 문자로 출력한다. // 5) 1, 2호기 엘리베이터가 몇층 몇층 발생했는지 배열에 10개만 저장하고 마지막에 이것을 출력한다. // 프로그램은 사용자가 0을 입력 할때까지 반복되므로 10개이상의 데이터가 발생할 수 있다. // 따라서 10개 이상이 발생하면 10개만 배열에 저장합니다. 그리고 저장된 10개를 각각 출력한다. // 현재 위치를 입력받아 리턴하는 함수 int Location(int number) { return printf(“Your location : %d

“, number); } int main() { int floor; int el_1, el_2; int el_1_array[10]; int el_2_array[10]; int i = 0; int result_1; int result_2; while (true){ // 1~10까지의 랜덤한 숫자 생성 el_1 = rand() % 10 + 1; el_2 = rand() % 10 + 1; printf(“What floor are you on ? : “); if (scanf_s(“%d”, &floor) == 0) { // 숫자가 아닌 문자를 입력 받을 시 오류 문구 출력 printf(“Error!!!

“); rewind(stdin); // 입력 버퍼 지우기 i–; printf(”

“); } else { if (floor == 0) { // 0을 입력시 반복문 탈출 printf(”

“); break; } if (floor >= 1 && floor <= 10) { Location(floor); // 현재 위치를 입력받아 리턴하는 함수호출 printf("First elevator : %d \t Second elevator : %d ", el_1, el_2); // 엘리베이터의 정보를 배열에 저장 el_1_array[i] = el_1; el_2_array[i] = el_2; // 두 개의 엘리베이터와 나의 위치를 계산 후 절대값을 이용하여 가까운 엘리베이터를 구함 result_1 = floor - el_1; result_2 = floor - el_2; if (abs(result_1) < abs(result_2)) { printf("Move First elevator."); } if (abs(result_2) < abs(result_1)) { printf("Move Second elevator."); } if (abs(result_1) == abs(result_2)) { printf("Move First elevator."); } printf(" "); } else { // 1~10 사이의 숫자가 아닌 수를 입력시 오류 출력 i--; printf("Error!! "); printf(" "); } } i++; if (i == 10) { break; } } // 결과 출력 printf("=====================Result====================="); printf(" First elevator : "); // 반복문을 이용해서 배열을 출력 for (int j = 0; j < 10; j++) { if (el_1_array[j] < 1 || el_1_array[j] > 10) { // 엘리베이터의 위치를 구하는 반복문에서 배열을 꽉채우지 않고 나올시 el_1_array[j] = ‘ ‘; // 아직 안채워진 배열은 공백으로 만듬 } else { printf(“%3d”, el_1_array[j]); } } printf(”

Second elevator : “); for (int j = 0; j < 10; j++) { if (el_2_array[j] < 1 || el_2_array[j] > 10) { el_2_array[j] = ‘ ‘; } else { printf(“%3d”, el_2_array[j]); } } printf(”

“); return 0; }

위 영상 두개를 보면 정상적으로 작동하는지 볼 수 있다.

728×90

반응형

프로그래밍과제 – 엘리베이터 알고리즘 [난이도 : 상]

엘리베이터 알고리즘

=================== 기본조건 ==========================

– 25층짜리 주상복합 건물에 3개의 엘리베이터가 있다.

– 모든 엘리베이터는 1층에서 25층까지 간다.

– 1층에서 타는 사람은 본인이 사는 A층을 누른다. [대기자]

– X층에서 타는 사람은 모두 1층에서 내린다.

– 엘리베이터의 속도는 1초에 1층이다.

===================== 추가조건 ==========================

– 1층에서 타는 사람은 사용자가 [대기자추가] 클릭하여 추가 할수있다.

– 1층에서 타는 사람 즉, 대기자는 2~25층까지 (프로그램이 지정한 랜덤층)으로 간다.

– 대기자는 해당층에서 60초후 혹은 120초후에 다시 1층으로 내려온다.

===================== 기본 만들기 ==========================

– 실제로 BOX나 버튼을 이용하여 엘리베이터가 움직이는 것을 만드시오.

– 엘리베이터 1대당 1명만 이용가능한 조건이다.

– 각 대기자는 사용자가 버튼으로 그때그때 추가가 가능하다.

===================== 확장 만들기 ============================

– 각 대기자는 사용자가 버튼으로 그때그때 추가하거나, 랜덤시간으로 추가됨.

– 각 대기자 마다 순번이나 이름이 있다.

– 각 대기자 기준으로 1층에서 타고 다시 내려올때까지의 시간을 구하시오.

엘리베이터 작동 알고리즘 | [러플] Project08. 엘리베이터 알고리즘1 213 개의 베스트 답변

당신은 주제를 찾고 있습니까 “엘리베이터 작동 알고리즘 – [러플] project08. 엘리베이터 알고리즘1“? 다음 카테고리의 웹사이트 https://ppa.baannapleangthai.com 에서 귀하의 모든 질문에 답변해 드립니다: ppa.baannapleangthai.com/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 천타컴맹 이(가) 작성한 기사에는 조회수 1,204회 및 좋아요 11개 개의 좋아요가 있습니다.

엘리베이터 알고리즘에 사용할 수 있는 가장 쉬운 접근법으로써 엘리베이터를 이용하려는 사용자가 요 청이 들어온 순서대로 엘리베이터가 출발지로 이동해 사용자를 태우고 사용자의 목적지에 내려준 후 다음 요청을 수행하는 것을 반복하는 기본적인 알고리즘이 다.

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

사는 오피스텔에 현대 엘리베이터 세 대가 있습니다. 근데 정말 알고리즘이 개똥이라 욕하며 살고 있습니다. 상황1) 엘리베이터 1: 1층에서 지하로 …

+ 더 읽기

Source: www.clien.net

Date Published: 1/9/2021

View: 1441

나의 층에서 가장 가까운 엘리베이터 하나만 움직이며, 만약 두 대의 엘리베티어가 같은 층일 시 1호기가 움직인다. 5. 나의 층수, 각각 엘리베이터의 …

+ 여기에 더 보기

Source: passing-story.tistory.com

Date Published: 8/1/2022

View: 6799

프로그래밍과제 – 엘리베이터 알고리즘 [난이도 : 상]. 개발자개발자 2019. 9. 9. 02:45. 엘리베이터 알고리즘. =================== 기본조건 …

+ 여기에 보기

Source: 0dev.tistory.com

Date Published: 1/17/2022

View: 561

사이클식 작동 엘리베이터용 급송 알고리즘{DISPATCHING ALGORITHM FOR CYCLICLY OPERATING ELEVATOR}. 전형적으로, 탑승자들은 에스컬레이터에 의해 몰등과 같은 저층 …

+ 여기에 자세히 보기

Source: patents.google.com

Date Published: 5/15/2021

View: 2711

단, 사고가 발생했을때 기어드 방식의 경우 모터가 빠져도 승강기가 작동하지 … 2개 이상의 엘리베이터를 동시에 제어하는 알고리즘이 2015년 들어 약간 바뀌었다.

+ 자세한 내용은 여기를 클릭하십시오

Source: namu.wiki

Date Published: 10/13/2021

View: 1019

1 엘리베이터 작동 원리 엘리베이터는 대부분 directional collective control로 작동합니다(Barney, G 2003). … 노트정리/알고리즘 놀이 2014. 6.

+ 더 읽기

Source: woongheelee.com

Date Published: 3/13/2021

View: 8680

그만큼 엘리베이터 알고리즘 (또한 주사)는 디스크-스케줄링 읽기 및 쓰기 요청을 … 은 대기열에있는 마지막 트랙에 도달 할 때까지 동일한 방식으로 작동합니다.

+ 여기에 자세히 보기

Source: hwikiko.cyou

Date Published: 2/1/2022

View: 1342

주제와 관련된 더 많은 사진을 참조하십시오 [러플] project08. 엘리베이터 알고리즘1. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

728×90

반응형

엘리베이터에 대한 프로그램을 짜 보도록 하겠습니다.

10층 건물에 엘리베이터가 두대(1호기, 2호기)가 있는데, 엘리베이터를 움직이게 하는 버튼은 하나입니다. 그리고 다른 층에서 엘리베이터를 타는 사람은 없습니다. (엘리베이터는 1층에서 10층까지 전층 운행한다.)

1. 현재 나의 위치는 키보드에서 직접 입력으로 받는다.

2. 건물은 1층에서 10층까지 입니다. 1~10 사이의 숫자 이외의 숫자나 문자가 입력되면 에러를 발생하고 다시 입력을 받는다.

3. 각각의 엘리베이터의 위치는 랜덤으로 받는다.

4. 나의 층에서 가장 가까운 엘리베이터 하나만 움직이며, 만약 두 대의 엘리베티어가 같은 층일 시 1호기가 움직인다.

5. 나의 층수, 각각 엘리베이터의 층수, 어떤 엘리베이터가 움직였는지 문자로 출력한다.

6. 1, 2호기 엘리베이터가 몇 층에 있었는지를 배열에 10개만 저장하고 이것을 출력한다. 프로그램은 사용자가 0을 입력할 때까지 반복한다. 하지만 0을 입력할 때까지 반복하므로 10개 이상의 데이터가 발생할 수 있다. 따라서 10개 이상이 발생하게 되면 10개만 배열에 저장한다. 그리고 저장된 10개를 출력한다.

먼저 첫 번째 조건인, 키보드에 현재 층을 입력을 받기 위해 정수형 변수를 만들고 scanf_s()함수로 입력을 받는다.

int floor; printf(“What floor are you on ? : “); scanf_s(“%d”, &floor)

현재 위치를 반환하는 함수를 만들었다.

int Location(int number) { return printf(“Your location : %d

“, number); }

다음으로 두 번째, 세 번째 조건을 만족 시키기 위해 if문을 이용한다. 그리고 0을 입력하면 종료되게 만들었다.

(추가로 배열에 엘리베이터의 값들을 저장하였다.)

// 1~10까지의 랜덤한 숫자 생성 el_1 = rand() % 10 + 1; el_2 = rand() % 10 + 1; if (scanf_s(“%d”, &floor) == 0) { // 숫자가 아닌 문자를 입력 받을 시 오류 문구 출력 printf(“Error!!!

“); rewind(stdin); // 입력 버퍼 지우기 printf(”

“); } else { if (floor == 0) { // 0을 입력시 반복문 탈출 printf(”

“); break; } if (floor >= 1 && floor <= 10) { Location(floor); // 현재 위치를 입력받아 리턴하는 함수호출 printf("First elevator : %d \t Second elevator : %d ", el_1, el_2); // 엘리베이터의 정보를 배열에 저장 el_1_array[i] = el_1; el_2_array[i] = el_2; } else{ printf("Error!! "); printf(" "); } } 그리고 네 번째 조건을 만족하기 위해 두 대의 엘리베이터와 나의 층수를 뺀 값에 절대값을 씌워 가장 가까운 엘리베이터가 움직이게 출력하였다. // 두 개의 엘리베이터와 나의 위치를 계산 후 절대값을 이용하여 가까운 엘리베이터를 구함 result_1 = floor - el_1; result_2 = floor - el_2; if (abs(result_1) < abs(result_2)) { printf("Move First elevator."); } if (abs(result_2) < abs(result_1)) { printf("Move Second elevator."); } if (abs(result_1) == abs(result_2)) { printf("Move First elevator."); } 배열의 출력은 for문을 통해 출력을 했다. printf("=====================Result====================="); printf(" First elevator : "); // 반복문을 이용해서 배열을 출력 for (int j = 0; j < 10; j++) { if (el_1_array[j] < 1 || el_1_array[j] > 10) { // 엘리베이터의 위치를 구하는 반복문에서 배열을 꽉채우지 않고 나올시 el_1_array[j] = ‘ ‘; // 아직 안채워진 배열은 공백으로 만듬 } else { printf(“%3d”, el_1_array[j]); } } printf(”

Second elevator : “); for (int j = 0; j < 10; j++) { if (el_2_array[j] < 1 || el_2_array[j] > 10) { el_2_array[j] = ‘ ‘; } else { printf(“%3d”, el_2_array[j]); } } printf(”

“);

전체 코드는 아래와 같다.

#include #include #include // [상황] // 10층 건물 한 건물에 두 대의 엘리베이터가 있다. // 두대(1호기, 2호기)의 엘리베이터는 움직이는 버튼이 하나이다. // 다른층에 엘리베이터는 타려는 사람은 없다. // 1호기는 1층에서 10층까지 움직인다. // [문제] // 1) 현재 나의 위치(층수)는 키보드에서 직접 입력 받는다. // 건물은 1층에서 10츱입니다.이외 층수가 입력되면 에러를 발생하고 다시 입력 받는다. // 단, 0층이 입력될때까지 프로그램은 계속 됩니다. // 나의 위치를 입력 받아 리턴하는 함수를 작성합니다. // 2) 각각의 엘리베이터의 위치(층수)는 랜덤하게 발생합니다.사용자는 엘리베이터의 위치를 알 수 없다. // 엘리베이터 위치발생에 필요한 사항 // #include // #include // srand((unsighed int)time(NULL)); // rand()%10+1 // 3)나의 위치와 가까운 엘리베이터가 움직인다. // 만일 나의 위치와, 엘리베이터 1호기와 2호기의 위치가 서로 같다면 1호기가 움직인다. // 4) 나의 층수, 각각 엘리베이터의 층수를 출력하고 어떤 엘리베이터가 움직였는지 문자로 출력한다. // 5) 1, 2호기 엘리베이터가 몇층 몇층 발생했는지 배열에 10개만 저장하고 마지막에 이것을 출력한다. // 프로그램은 사용자가 0을 입력 할때까지 반복되므로 10개이상의 데이터가 발생할 수 있다. // 따라서 10개 이상이 발생하면 10개만 배열에 저장합니다. 그리고 저장된 10개를 각각 출력한다. // 현재 위치를 입력받아 리턴하는 함수 int Location(int number) { return printf(“Your location : %d

“, number); } int main() { int floor; int el_1, el_2; int el_1_array[10]; int el_2_array[10]; int i = 0; int result_1; int result_2; while (true){ // 1~10까지의 랜덤한 숫자 생성 el_1 = rand() % 10 + 1; el_2 = rand() % 10 + 1; printf(“What floor are you on ? : “); if (scanf_s(“%d”, &floor) == 0) { // 숫자가 아닌 문자를 입력 받을 시 오류 문구 출력 printf(“Error!!!

“); rewind(stdin); // 입력 버퍼 지우기 i–; printf(”

“); } else { if (floor == 0) { // 0을 입력시 반복문 탈출 printf(”

“); break; } if (floor >= 1 && floor <= 10) { Location(floor); // 현재 위치를 입력받아 리턴하는 함수호출 printf("First elevator : %d \t Second elevator : %d ", el_1, el_2); // 엘리베이터의 정보를 배열에 저장 el_1_array[i] = el_1; el_2_array[i] = el_2; // 두 개의 엘리베이터와 나의 위치를 계산 후 절대값을 이용하여 가까운 엘리베이터를 구함 result_1 = floor - el_1; result_2 = floor - el_2; if (abs(result_1) < abs(result_2)) { printf("Move First elevator."); } if (abs(result_2) < abs(result_1)) { printf("Move Second elevator."); } if (abs(result_1) == abs(result_2)) { printf("Move First elevator."); } printf(" "); } else { // 1~10 사이의 숫자가 아닌 수를 입력시 오류 출력 i--; printf("Error!! "); printf(" "); } } i++; if (i == 10) { break; } } // 결과 출력 printf("=====================Result====================="); printf(" First elevator : "); // 반복문을 이용해서 배열을 출력 for (int j = 0; j < 10; j++) { if (el_1_array[j] < 1 || el_1_array[j] > 10) { // 엘리베이터의 위치를 구하는 반복문에서 배열을 꽉채우지 않고 나올시 el_1_array[j] = ‘ ‘; // 아직 안채워진 배열은 공백으로 만듬 } else { printf(“%3d”, el_1_array[j]); } } printf(”

Second elevator : “); for (int j = 0; j < 10; j++) { if (el_2_array[j] < 1 || el_2_array[j] > 10) { el_2_array[j] = ‘ ‘; } else { printf(“%3d”, el_2_array[j]); } } printf(”

“); return 0; }

위 영상 두개를 보면 정상적으로 작동하는지 볼 수 있다.

728×90

반응형

엘리베이터 시뮬레이터 만드는 방법

걷기 전에 뛸 수 없다 (628) 뮤지컬, 영화, 오페라, 미술.. (14) 강력 추천 두 권 (1) 소소한 일상. 다요리. (135) 읽은 책 (87) 노트정리 (213) 계산기 SHARP EL-9650 (2) 그래프 이론 graph theory (6) 데이터마이닝 data mining (1) 라즈베리파이 raspberry pi (1) 리눅스 linux (10) 머신러닝 machine leanring (3) 비주얼 베이직 Visual Basic (0) 블록체인 block chain (1) 블루투스 노트정리 (0) 선형대수학 linear algebra (2) 수학 일반 (6) 스토리텔링 재료들 (0) 시각화 Visualization (3) C C++ 배우는 중 책 스터디공간 (3) 알고리즘 놀이 (39) 엑셀 공부 중 (9) 어셈블리 (18) 어셈블리 책 스터디 공간 (16) 영상 편집 (2) 영어공부중 (13) 오브젝티브 C (0) WEKA (1) WinAPI 배우는 중 (0) 인공지능 (9) 정보검색론 Information Retr.. (3) 자바 JAVA (10) 책 | 뉴욕 취업, 이정희 (0) 최적화 방법론 optimization.. (1) AAT Grammar (0) HTML, 웹프로그래밍 (6) OPIC (0) 위키피디아 wikipedia (6) PPT 공부 중 (4) SAS (6) SPSS (2) 파이썬 Python (18) 펄 perl (1) 포트란 fortran (2) 컴퓨터 비젼 computer vision (3) 코딩 인터뷰 coding interview (1) 확률과 통계 (5) (취미)전자회로 개발 (81) 1003 1 L시리즈 마이컴 체커 (1) 1004 1 다이얼로그기반계산기 (2) 1004 3 윈도우기반계산기 (1) 1004 2 마이컴 체커 통합 Fin.. (0) 1007 1 매크로조이스틱만들기 (18) 1007 2 LED셔터쉐이드&도트매.. (20) 1012 2 커맨드to비트 (0) 1101 1 USB Joystick (11) 1101 2 매크로조이스틱VER1.1 (12) 1101 3 모터 제어 (8) 1106 1 20B-MK-Board (3) 1202 1 블링블링 암밴드 (3) 1202 2 PS3 PC용 USB 만들기.. (2) 매크로 조이스틱 제작 강좌 1.. (15) (취미)전자회로 공부 (71) 기타 (33) 하드웨어 (13) PIC-44Pindemoboard (18) PIC18F46J50 FS USB PIN DEMO.. (7) 매크로조이스틱 작업중지 (5) (중지) 매크로 스틱 메뉴얼 (2) (중지) 매크로스틱파일 (1) (중지) 매크로 조이스틱 Ver.2 (1) 공돌이 공부방법정리 (5) 링크관리 (0)

KR20030044910A – 사이클식 작동 엘리베이터용 급송 알고리즘 – Google Patents

Control systems without regulation, i.e. without retroactive action electric with devices, e.g. push-buttons, for indirect control of movements

B66B1/18

Control systems without regulation, i.e. without retroactive action electric with devices, e.g. push-buttons, for indirect control of movements with means for storing pulses controlling the movements of several cars or cages

[프로젝트 엘리베이터] 엘리베이터 알고리즘 (feat. 카카오 2차 코딩테스트)

카카오 2차 코딩테스트에서 엘리베이터 알고리즘 문제가 나온 김에 그 동안 구상만 했던 엘리베이터 프로젝트를 다시 시작해보려고 한다.

코딩 테스트에서 짰던 코드와 아이디어를 최대한 활용하고 최적화하는 방향으로 진행해보려고 한다.

내가 제출했던 솔루션은 ‘다수결에 의한 작동’이었다.

‘다수결에 의한 작동’

1) 엘리베이터에 승객이 있다면, 목적지가 많은 방향 (위,아래)으로 움직인다.

2) 엘리베이터에 승객이 없다면, 기다리는 승객이 많은 방향(위,아래)로 움직이다.

3) 엘리베이터가 위치한 층에 내릴 사람이나, 대기하는 사람이 있으면 태운다.

3)의 동작 방식은 지금 생각해보면 매우매우 치명적인 비효율을 야기할 수 있다.

예를 들어 엘리베이터안에 5명이 존재하고 3명이 25층으로, 2명이 1층으로 가고자 하는 사람들이라 가정해보자. 엘리베이터가 다수결에 의해 3명의 사람을 25층으로 데려가기 위해 올라가던 중에 13층에서 승객을 만나서 태웠다. 그런데 새로운 승객의 목적지가 1층이라서 다수결에 의해 다시 목적지가 1층으로 바뀌면 엘리베이터는 다시 하강을 시작한다. 그리고 2층에서 다시 승객을 태웠는데 승객의 목적지가 25층이라면 다수결에 의해서 다시 엘리베이터는 상승해야하고 위와 같은 상황은 최악의 경우 엘리베이터의 정원이 꽉 찰때까지 반복될 수 있다.

반면 엘리베이터의 방향이 처음 정해지고 난 후에 이동방향이 다른 사람은 태우지 않는다면 위와 같은 상황을 막을 수 있다. 그리고 이동방향은 승객이 모두 내릴 때까지 변하지 않으므로 굳이 다수결로 방향을 정할 필요 없이 그냥 승객 하나를 골라 목적지가 현재 층을 기준으로 위인지 아래인지만 살펴보면 결국 그 방향이 모든 승객의 방향과 일치하게 된다.

키워드에 대한 정보 엘리베이터 작동 알고리즘

다음은 Bing에서 엘리베이터 작동 알고리즘 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [러플] project08. 엘리베이터 알고리즘1

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기
[러플] #project08. #엘리베이터 #알고리즘1


YouTube에서 엘리베이터 작동 알고리즘 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [러플] project08. 엘리베이터 알고리즘1 | 엘리베이터 작동 알고리즘, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  Uchwyt Na Telefon Na Kratkę Nawiewu | Jaki Uchwyt Do Telefonu Wybrać, Na Co Uważać ?🚗 최근 답변 138개

Leave a Comment