최댓값은 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
'Python' 카테고리의 다른 글
[코드트리 조별과제] #08. 새로운 2차원 배열 선언과 활용 (0) | 2024.08.11 |
---|---|
[코드트리 조별과제] #07. 2차원 배열 입력, 2차원 배열에서 원소에 대한 접근 (0) | 2024.08.06 |
[코드트리 조별과제] #05. 특정 문자가 입력될 때까지 여러 줄 입력 받기 (0) | 2024.08.04 |
[코드트리 조별과제] #04. 특정 위치의 문자 enumerate, 특정 원소의 개수 count (0) | 2024.08.03 |
[코드트리 조별과제] #03. counting 배열 (0) | 2024.08.02 |