[Python] 최댓값과 최솟값

Laska·2025년 3월 14일
post-thumbnail

필자는 최댓값과 최솟값을 구하는 과정에서 그냥 max(), min() 메서드를 사용했었다.

해당 알고리즘이 어떻게 실행되는지는 대충 생각이 가지만 구현을 해본 적은 없는 것 같다.

여기 세가지 수의 경우 어떤 식으로 처리를 하는지 한번 살펴보자.

세 정수의 최댓값 구해보기


# 입력 과정 생략 a,b,c를 입력 받았다고 가정

maximum = a
if b > maximum: maximum = b 
if c > maximum: maximum = c

해당 알고리즘을 살펴보면, 최댓값을 통해 maximum을 계속해서 갱신 시키고 있다.

해당 알고리즘은 maximum을 a로 세팅한 후에 다른 수들과 비교 판단을 하는 방식

위를 개선할 방안 생각

위를 간단히 보이도록 개선하려면 반복문을 통해 비교 판단을 하는 방식이 있다.

  1. a,b,c를 리스트 배열에 저장
  2. max값을 0 or 리스트의 0번째 값으로 저장
  3. 반복문을 통해 리스트의 인자를 전달하며 max값과 비교 판단
  4. 루프가 끝나면 최종 max값은 최댓값이 된다.

Max 함수 구현


그러면 이것을 응용해서 파이썬의 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 함수 구현


반대로 최솟값을 도출해내는 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
	 

-참고-

https://gm-note.tistory.com/entry/Python-%EB%82%B4%EC%9E%A5%ED%95%A8%EC%88%98-max-min-%EA%B5%AC%ED%98%84

https://velog.io/@clueless_coder/%ED%8C%8C%EC%9D%B4%EC%8D%AC-args-%EC%99%80-kwargs-%EA%B0%80-%EB%AD%90%EC%98%88%EC%9A%94

profile
똑똑해지고 싶어요

0개의 댓글