포포's 코딩&일상 기록

[python] 최솟값 정하는 방법 본문

카테고리 없음

[python] 최솟값 정하는 방법

포포252 2023. 10. 2. 02:46

 

 만약 주어진 모든 원소들이 전부 음수라면, 예상과는 다르게 최댓값이 0으로 구해지게 됩니다. 이 까닭은 초기값이 0으로 셋팅되어 있어, 의도와는 다르게 갱신이 전혀 일어나지 않기 때문입니다.

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

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

print(max_val)

>> 0

다음 문제에 대한 해결책은 크게 2가지가 있습니다.

첫 번째 방법은, 주어지는 숫자들 값보다 더 작은 숫자를 초기값으로 설정하는 것입니다. 이 경우 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

두 번째 방법은, 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

python의 경우 max() 함수를 바로 이용하는 방법도 있지만, 처음에는 직접 구현하여 동작 원리를 이해해보는 것을 추천드립니다.

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

print(max(arr))
>> -1