본문 바로가기
Studying/Python

[Python] 내장함수 max, min 구현

by giem 2022. 5. 16.
반응형

Python의 내장함수 max와 min은 입력받은 인자들의 최댓값을 구한다.

만약 하나의 인자를 입력받았다면 iterable한 인자를 넣어야 한다.

 

test = [7, 4, 2, 6, 8]

print(max(1,2,3))	#3
print(min(1,2,3))	#1
print(max(test))	#8
print(min(test))	#2

추가로 key와 default값을 입력받을 수 있는데

key는 각 요소를 시작전에 한번 계산을 할 수 있게 하는것인데 추후 sort부분에서 다루려고 한다.

default는 반환할 값이 없을 때 반환할 값을 지정할 수 있다.

 

그러면 설계를 해보겠다. 편의상 key와 default는 생략하겠다.

 

먼저 args를 입력받아서 그 길이가 1이면 args[0]을 사용하도록 바꿔준다.

 

그후 max값을 첫번째 값으로 초기화 해주고 args를 iteration하며 max값보다 큰 값이 나오면 max값을 바꿔주고

반복이 끝났을 때 max를 리턴해준다.

 

def my_max(*args):
  if len(args)==1:
    args = args[0]
  max=args[0]
  for num in args:
    if(max<num):
      max=num
  return max

def my_min(*args):
  if len(args)==1:
    args = args[0]
  min=args[0]
  for num in args:
    if(min>num):
      min=num
  return min

 

그러면 테스트를 해보겠다.

 

test = [7, 4, 2, 6, 8]
assert max(test) == my_max(test) and min(test) == my_min(test)
assert max(7, 4, 2, 5) == my_max(7, 4, 2, 5) and min(7, 4, 2, 5) == my_min(7, 4, 2, 5)

 

정상적으로 동작하는 것을 볼 수 있다.

반응형

'Studying > Python' 카테고리의 다른 글

[Python] 내장함수 reversed 구현  (0) 2022.05.18
[Python] 내장함수 range 구현  (0) 2022.05.18
[Python] 내장함수 enumerate 구현  (0) 2022.05.15
[Python] 내장함수 round 구현  (0) 2022.05.15
[Python] 내장함수 abs 구현  (0) 2022.05.13

댓글