이 글에서는 주어진 문제 상황을 해결하기 위한 풀이 방법과 접근 방식에 대해 자세히 알아보겠습니다.
문제 정의
하나의 배열이 입력으로 주어졌을 때, 해당 배열 안에서 가장 큰 요소(최댓값)를 찾아야 합니다.
접근 방법
- max 변수를 배열의 첫 번째 요소 값으로 초기화합니다.
- 그다음, 두 번째 요소부터 배열의 끝까지 차례대로 순회(traverse)합니다.
- 순회 중인 각 요소를 현재 max 값과 비교합니다.
- 현재 요소가 max보다 크다면 max 값을 해당 요소로 갱신(update)합니다.
- 그렇지 않다면 비교 없이 다음 요소로 넘어갑니다.
이러한 로직을 그대로 구현한 코드는 아래와 같습니다.
구현 예제
def largest(arr,n):
# 최댓값을 저장할 변수
max = arr[0]
for i in range(1, n):
if arr[i] > max:
max = arr[i]
return max
# main
arr = [10, 24, 45, 90, 98]
n = len(arr)
Ans = largest(arr,n)
print ("Largest in the given array is",Ans)실행 결과
Largest in the given array is 98
위 코드에서 사용된 모든 변수와 함수는 아래 그림과 같이 전역 범위(global scope)에 선언되어 있습니다.

시간 복잡도
이 알고리즘은 배열의 모든 요소를 한 번씩만 확인하므로 시간 복잡도는 O(n)이며, 추가적인 메모리를 거의 사용하지 않으므로 공간 복잡도는 O(1)입니다.
참고: 내장 함수 max() 활용하기
파이썬에서는 직접 반복문을 작성하지 않고도 내장 함수 max()를 사용해 간단하게 최댓값을 구할 수 있습니다.
arr = [10, 24, 45, 90, 98]
print("Largest in the given array is", max(arr))마치며
이번 글에서는 배열에서 가장 큰 요소를 찾는 대표적인 접근 방법을 살펴보았습니다. 반복문으로 직접 구현하는 방식은 알고리즘의 동작 원리를 이해하는 데 도움이 되며, 실무에서는 간결성을 위해 내장 함수 max()를 활용하는 것도 좋은 선택입니다.