728x90
반응형
문제
1. 건물 엘리베이터의 운행 화면(Display) 프로그램을 개발하고자 한 다.
이 프로그램은 건물의 지상(1,2,3,…) 및 지하(-1,-2,-3,…) 층수에 상관없이 모든 건물에 적용되어 사용될 수 있으며,
단 모든 건물에 로비층(0층)이 존재한다고 가정한다.
2. 사용자가 가고싶은 층(targetFloor)을 입력하면,
현재 층 (currentFloor)보다 높은 경우 goUpfloor함수를 호출하고,
낮은 경우 goDownfloor함수를 호출하며,
현재 층과 같은 층일 경우 다 른 층을 입력하도록 요구한다.
(다음 페이지에 주어진 코드를 이용할 것)
3. 엘리베이터가 이동하면서 매 층마다 몇 층인지를 화면에 연속적으 로 표시하고,
가고자하는 층에 다다른 경우 도착하였음을 알려준다.
def goDownfloor(current, target):
for floor in range(current, target, -1): # current에서 target으로 내겨감. step을 -1로 함
current -= 1 # current에서 1층씩 뺌
if floor != target+1: # target 층이 아니면 현재층 출력
print(f"{current}층")
else:
print(f"{target}층에 도착했습니다.") # target층이면 도착 출력
return current # 도착층을 리턴함
def goUpfloor(current, target):
for floor in range(current, target): # current에서 target으로 올라감.
current += 1 # current에서 1층씩 더함
if floor != target-1: # target층이 아니면 현재층 출력
print(f"{current}층")
else:
print(f"{target}층에 도착했습니다.") # target층이면 도착 출력
return current # 도착층을 리턴함
currentFloor = 1
while(True):
targetFloor = int(input('가고자하는 층을 입력하세요(운행 정지는 -100을 입력): '))
if targetFloor == -100:
break
else:
if targetFloor > currentFloor: # targt층이 크면 올라감
currentFloor = goUpfloor(currentFloor, targetFloor)
elif targetFloor < currentFloor: # target층이 작으면 내려감
currentFloor = goDownfloor(currentFloor, targetFloor)
elif targetFloor == currentFloor:
print('다른 층을 다시 입력하세요.')
결과
가고자하는 층을 입력하세요(운행 정지는 -100을 입력): 5
2층
3층
4층
5층에 도착했습니다.
가고자하는 층을 입력하세요(운행 정지는 -100을 입력): 3
4층
3층에 도착했습니다.
가고자하는 층을 입력하세요(운행 정지는 -100을 입력): 7
4층
5층
6층
7층에 도착했습니다.
가고자하는 층을 입력하세요(운행 정지는 -100을 입력): 2
6층
5층
4층
3층
2층에 도착했습니다.
가고자하는 층을 입력하세요(운행 정지는 -100을 입력): 2
다른 층을 다시 입력하세요.
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 입력된 정수 리스트에서 작은수부터 이동(이동 후 삭제) (0) | 2022.11.20 |
---|---|
[파이썬] 문제 : 합집합,교집합,차집합,여집합 (0) | 2022.11.20 |
[파이썬] 문제 : tkinter 섭씨/화씨 변환기 (0) | 2022.11.18 |
[파이썬] 문제 : 인원 입력 받아 금액 매칭하고 제일 큰 금액 출력 (0) | 2022.11.18 |
[파이썬] 문제 : 숫자 맞추기 게임. (0) | 2022.11.18 |
댓글