본문 바로가기

Python/기초

[알고리즘] 최대값, 최소값 구하기

1. 파이썬 내장함수 사용하기

    간단하게 파이썬의 내장함수를 사용해서 최대값을 구할 수 있다.

    이때의 시간복잡도는 O(n)이다.

#리스트 형태
arr = [5, 3, 7, 9, 2, 5, 2, 6]

arrMax = max(arr)	#최대값
arrMin = min(arr)	#최소값

print(arrMax)
print(arrMin)

>> 9
   2
   
   
#정수형 제공
iMax = max(5, 3, 7, 9, 2, 5, 2, 6)  #최대값
iMin = min(5, 3, 7, 9, 2, 5, 2, 6)  #최소값

print(iMax)
print(iMin)

>> 9
   2
   
   
#문자형 제공
sMax = max('Korea')
sMin = min('Korea')
ssMin = min('korea')

print(sMax)
print(sMin)
print(ssMin)

>> r
   K
   a

   * 숫자와 문자가 섞여있는 경우는 서로를 비교할 수 없기 때문에 최대값/최소값을 구할 수 없다.

   * 반복이 가능한 타입(iterable)의 자료형이 주어지면 내장함수로 최대값/최소값을 구할 수 있다.

      예) 리스트, 문자열, 튜플 등

   * 문자열의 대소비교를 진행할 때 대문자와 소문자를 분리하는 것을 알 수 있다.

      예) 대문자 K < 소문자 a    

            이는 아스키 코드 숫자에 의해 판별하기 때문이다.

            아스키코드에 의하면 대문자 A는 65이고 소문자 a는 97이다.

 

 

2. 정렬해서 값 추출하기 (리스트)

     리스트 자료형의 경우 내장함수에 있는 정렬을 이용해서 최대값/최소값을 구할 수 있다.

     이때, sort의 경우 시간복잡도가 O(n log n)이므로 내장함수 최대값, 최소값을 구하는 것보다는 시간이 느리다.

arr = [5, 3, 7, 9, 2, 5, 2, 6]
arr.sort()
print(arr[-1])  #최대값
print(arr[0])   #최소값

>> 9
   2
   
   
arr.sort(reverse=True)
print(arr[0])   #최대값
print(arr[-1])  #최소값

>> 9
   2
   
   
   
s = ['K', 'O', 'R', 'E', 'A']
s.sort()
print(s[-1])	#최대값
print(s[0])	#최소값

>> K
   A

   * 리스트의 제일 앞에 있는 값은 인덱스가 0번이고, 가장 마지막에 있는 값은 인덱스가 -1임을 이용한다.

   * 리스트.sort() : 리스트의 값을 오름차순으로 정렬한다. (작은 값부터 큰 값으로 정렬)

   * 리스트.sort(reverse=True) : 리스트의 값을 내림차순으로 정렬한다. (큰 값부터 작은 값으로 정렬)

 

 

3. 값 비교하기

    리스트 자료형의 값을 임의의 변수와 처음부터 끝까지 비교해서 최대값/최소값을 구한다.

arr = [5, 3, 7, 9, 2, 5, 2, 6]
arrMax = arr[0]
arrMin = 2147000000

for i in range(len(arr)):
  if arr[i] > arrMax:     #최대값
    arrMax = arr[i]
  if arr[i] < arrMin:     #최소값
    arrMin = arr[i]

print(arrMax)
print(arrMin)

>> 9
   2

   * 임의의 변수는 리스트의 첫번째 값으로 설정해도 되고,

      정수형 중 가장 큰 값인 2147000000 또는 가장 작은 값인 -2147000000으로 설정해서 값을 찾아도 된다.

'Python > 기초' 카테고리의 다른 글

[자료구조] 자료구조(Data Structure)란?  (0) 2023.08.25
[기초] 파이썬_나누기 연산  (0) 2023.05.31
[기초] 변수  (0) 2023.02.23
파이썬 실행모드  (0) 2022.08.10