[코드트리 조별과제] #06. 리스트에서 주어진 숫자들 중 최댓값/최솟값 구하기

최댓값은 max_val 이라는 변수를 사용하여 다음과 같이 구해볼 수 있음. 지금까지 구한 최댓값인 max_val이라는 값보다 현재 값인 elem이 더 큰 경우라면, 최댓값을 갱신한다는 개념

arr = [1, 5, 2, 5, 3, 9]

max_val = 0
for elem in arr:
    if elem > max_val:
        max_val = elem

print(max_val)

>> 9

 

하지만 만약 주어진 모든 원소들이 전부 음수라면, 예상과는 다르게 최댓값이 0으로 구해지게 됨. 이  문제에 대한 해결책은 크게 2가지가 있

 

1. -sys.maxsize 이용

  • 주어지는 숫자들 값보다 더 작은 숫자를 초기값으로 설정하는 것
  • 이 경우 python에서는 -sys.maxsize를 이용해 초기값을 정해주는 것이 일반적임
import sys

arr = [-1, -5, -2, -5, -3, -9]

max_val = -sys.maxsize
for elem in arr:
    if elem > max_val:
        max_val = elem

print(max_val)

>> -1

 

 

2. max_val = arr[0]

  • max_val의 초기값을 첫 번째 원소로 하고, 원소를 비교하는 것을 두 번째 원소부터 진행
  • 두 번째 원소부터 비교를 진행하기 위해서는 arr[1:]로 비교해야할 원소들을 재정의해주면 좋음
arr = [-1, -5, -2, -5, -3, -9]

max_val = arr[0]
for elem in arr[1:]:
    if elem > max_val:
        max_val = elem

print(max_val)

>> -1

 

 

3. max() 함수 이용

arr = [-1, -5, -2, -5, -3, -9]

print(max(arr))
>> -1

 

 

최솟값을 구하는 경우에는 부등호 방향을 반대로 해서 동일한 방식으로 진행하면 됨

 

+) min() 함수 이용

arr = [11, 15, 12, 15, 13, 19]

print(min(arr))
>> 11