필자는 최댓값과 최솟값을 구하는 과정에서 그냥 max(), min() 메서드를 사용했었다.
해당 알고리즘이 어떻게 실행되는지는 대충 생각이 가지만 구현을 해본 적은 없는 것 같다.
여기 세가지 수의 경우 어떤 식으로 처리를 하는지 한번 살펴보자.
# 입력 과정 생략 a,b,c를 입력 받았다고 가정
maximum = a
if b > maximum: maximum = b
if c > maximum: maximum = c
해당 알고리즘을 살펴보면, 최댓값을 통해 maximum을 계속해서 갱신 시키고 있다.
해당 알고리즘은 maximum을 a로 세팅한 후에 다른 수들과 비교 판단을 하는 방식
위를 간단히 보이도록 개선하려면 반복문을 통해 비교 판단을 하는 방식이 있다.
그러면 이것을 응용해서 파이썬의 max함수를 구현해본다.
def max(*args): # 여기서 *args는 (positional)arguments : 인자를 여러개 받아 튜플로 저장
if len(args) == 1: args = args[0]
max = args[0]
for num in args :
if max < num : max = num
return max
이런 식으로 동작 될 것이다.
반대로 최솟값을 도출해내는 min함수는 어떻게 될까 ?
조건문의 조건만 반대로 해주면 된다.
def min(*args): # 여기서 *args는 (positional)arguments : 인자를 여러개 받아 튜플로 저장
if len(args) == 1: args = args[0]
min = args[0]
for num in args :
if min < num : min = num
return min
-참고-