Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 리스트에서 최댓값과 최솟값의 위치를 찾는 방법

파이썬에서는 리스트의 최댓값과 최솟값은 물론, 그 요소가 위치한 자리까지 아주 간단하게 구할 수 있습니다. 파이썬은 이를 위한 다양한 내장 함수를 제공하는데, 핵심적인 역할을 하는 함수는 다음 세 가지입니다.

핵심 내장 함수

min() : 배열(리스트)에서 최솟값을 찾습니다.
max() : 배열(리스트)에서 최댓값을 찾습니다.
index() : 특정 요소가 저장된 인덱스(위치)를 반환합니다.

알고리즘

maxminposition(A, n)
/* A는 사용자가 입력한 리스트이며, n은 리스트의 크기입니다. */
Step 1: 내장 함수를 사용해 최소 요소의 위치를 찾습니다.
            A.index(min(A))
Step 2: 내장 함수를 사용해 최대 요소의 위치를 찾습니다.
            A.index(max(A))

예제 코드

# 리스트에서 최솟값과 최댓값의 위치를 찾는 함수
def maxminposition(A, n):
   # 최솟값의 위치를 찾는 내장 함수
   minposition = A.index(min(A))
   # 최댓값의 위치를 찾는 내장 함수
   maxposition = A.index(max(A))
   print("최댓값의 위치::", maxposition + 1)
   print("최솟값의 위치::", minposition + 1)
# 드라이버 코드
A = list()
n = int(input("리스트의 크기를 입력하세요 ::"))
print("요소를 입력하세요 ::")
for i in range(int(n)):
   k = int(input(""))
   A.append(k)
maxminposition(A, n)

실행 결과

리스트의 크기를 입력하세요 ::4
요소를 입력하세요::
12
34
1
66
최댓값의 위치:: 4
최솟값의 위치:: 3

코드 설명

위 예제에서 주목할 점은 출력 시 + 1을 더해준 부분입니다. 파이썬의 인덱스는 0부터 시작하기 때문에, index() 함수가 반환하는 값은 실제 사람이 읽는 '순번'보다 1만큼 작습니다. 따라서 사용자에게 보여줄 때는 1을 더해 직관적인 위치 값으로 변환해 주는 것이 좋습니다.

또한 A.index(min(A))처럼 함수를 중첩하면 별도의 반복문 없이 한 줄로 원하는 값을 얻을 수 있어 코드가 간결해집니다. 만약 동일한 최댓값이나 최솟값이 여러 개 존재한다면, index() 함수는 가장 먼저 나타나는 첫 번째 위치만 반환한다는 점도 함께 기억해 두면 유용합니다.