InTen

[파이썬 3.x] 엘리베이터 문제 본문

프로그래밍/파이썬

[파이썬 3.x] 엘리베이터 문제

인텐 2020. 12. 12. 16:54

문제 > 5층 건물에서 사용자가 가고 싶은 층을 선택하면, 현재의 층보다 높은지 계산하여

높은 경우 올라가고, 낮은 경우 내려가며, 도착한 경우 결과를 출력하는 프로그램을 작성하시오.

<조건>

1) 엘리베이터 시스템의 설계는 다음과 같다.

- 사용자가 1-5 이외의 숫자는 누를 수 없다.

- 사용자가 현재 엘리베이터가 서있는 층을 선택하면 다른 층을 선택하라는 메시지를 출력한다.

2) 각 경우에 해당하는 출력 메시지는 다음과 같다.

- 사용자가 가고자 하는 층을 현재 층으로 입력하거나 범위 외의 층을 입력한 경우에는 "다른층을 (1~5)을 눌러주세요"
를 출력한다.

- 엘리베이터가 내려가야하는 경우, 엘리베이터의 층을 줄여 출력하는 goDown함수 정의 올라갈 시에는 goUP()을 정의한다.

-엘리베이터의 층이 가고자 하는 층에 도달할 때까지 엘리베이터의 위치를 출력하고 도착한 경우, 결과 메시지를 출력한다.

No_F = int(input("현재 층 : "))
Ne_F = int(input("가는 층 : "))
def goDown() :
    global No_F
    global Ne_F

    if No_F >= Ne_F:
        print("현재 층은 ", No_F,"입니다.")
        No_F -= 1

def goUP():
    global No_F
    global Ne_F

    if No_F <= Ne_F:
        print("현재 층은 ", No_F,"입니다.")
        No_F += 1

if No_F == Ne_F or 1 > Ne_F or 5 < Ne_F:
    print("다른 층(1-5)을 눌러주세요.")

elif No_F > Ne_F:
    for i in range(No_F, Ne_F-1,-1):
        goDown()
    print(No_F+1,"층에 도착했습니다.")
else:
    for i in range(No_F,Ne_F+1,1):
        goUP()
    print(No_F-1,"층에 도착했습니다.")

 

Comments