문제를 풀기전에 잘 읽어보고 정리를 한 뒤 풀자 해석이 제일중요함!!
최대값과 최소값을 구하는 형식이 여기서 되게 잘 나와있다 참고하자
절대값의 방법엔 여러가지가 있다 밑에서 확인
현재 층수를 입력받아서, 가장 가까운 엘리베이터가 이동하는 코드를 만들어보세요
import random
e1 = random.randrange(1,16)
e2 = random.randrange(1,16)
e3 = random.randrange(1,16)
`print(f'A : {e1}층, B : {e2}층, C : {e3}층')`
1) 사용자에게 현재 층수를 입력 받는다
`currentFloor = int(input('현재 층 :'))`
2) 각 엘리베이터와 현재 층수의 거리를 구한다
d1 = currentFloor - e1 # 먼저 차이를 구하고
d2 = currentFloor - e2
d3 = currentFloor - e3
if d1 <0: d1 = -d1 # 절대값으로 처리한다
if d2 <0: d1 = -d2
if d3 <0: d1 = -d3
d1이 음수인것과 상관없이, 이후 d2나 d3도 검사해야한다
mindistance = d1
if d2 < mindistance: mindistance = d2
if d3 < mindistance: mindistance = d3
하나의 값을 또다시 변수선언하고 d2가 d1보다 작다면 그변수를 작은수로 변수선언 또 if 를 써서 d3가 그변수선언한 것 보다 값이 작다면 d3가 그자리를 대체 와 나는 진짜 이런 방법은 생각도 못했다
최소값 또는 최대값을 구할 때 이방법을 응용하면 정말 좋은 것 같다 나는 어떻게 풀었었냐면
if d1 <= d2 and d1 <= d3:
result = 'A'
elif d2 <= d3:
result = 'B'
else:
result = 'C'
d1 이 d2 보다 작거나 같고, d1이 d3보다 작거나 같다면 A출력 아니면 d2 가 d3 보다 작거나 같다면 B출력 아니면 C출력 인데 현저히 가독성이 낮다.
4) 거리가 최소인 엘리베이터를 화면에 출력한다
ex) A 엘리베이터가 이동합니다
ex) B 엘리베이터가 이동합니다
if mindistance == d1 : print('A',end='')
elif mindistance == d2 : print('B',end='')
else: print('C',end='')
print('엘리베이터가 이동합니다')
N = input('수를 입력하시오')
if N < 0 : N = -N
또는
if N < 0 : N = N * -1
또는
if N < 0 : N *= -1
보니까 abs 명령어도 있는 것 같은데 아직 배우지 않았으니 패스