웹쟁이의 일상

[Algorithm] 파이썬으로 주어진 숫자 중 최대값 구하기 본문

Python

[Algorithm] 파이썬으로 주어진 숫자 중 최대값 구하기

jellyChoi 2019. 6. 10. 22:00

안녕하세요~ 오늘 풀어볼 알고리즘은

 

주어진 숫자 n개 중 가장 큰 숫자를 찾는 알고리즘을 구현해 보는 것 입니다.

 

예를 들어 4, 7, 12, 25, 2, 47, 18, 24 중 가장 큰 숫자인 47을 찾는 알고리즘입니다.

 

이 문제를 풀기 위해서는 리스트를 알아야 합니다.

 

우리는 모두 파이썬 말고도 다른 프로그래밍 언어를 접하면서 배열이 무엇인지 공부했기 때문에

 

푸는데 큰 문제는 없을 것입니다. 그러므로 리스트에 대한 기본적인 설명은 넘어가겠습니다.

 

다시 최대값 찾기 문제로 돌아와서 4, 7, 12, 25, 2, 47, 18, 24 중 최대값을 찾는 알고리즘을 정리해 보겠습니다.

 

1.첫 번째 숫자 4를 7과 비교합니다. 7이 더 크니 현재 최대값은 7입니다.

 

2. 7과 세번째 숫자 12를 비교합니다. 12가 더 크기 때문에 12가 현재 최대값입니다.

 

...

설명만 들어도 어떻게 구현해야 될 지 답이 나오는 것 같죠?

 

이 알고리즘을 파이썬으로 만들어 보겠습니다.

 

def max_search(list):
    n = len(list)						#입력 크기 n
    maxValue = list[0]					#리스트의 첫 번째 값을 최대값으로 초기화
    for i in range(1, n):				#1부터 n까지 반복 실행
        if list[i] > maxValue:			#만약 이번 값이 최대값보다 크다면
            maxValue = list[i]			#최대값을 i번째 값으로 변경
    return maxValue						#설정된 최대값을 반환

list = [4, 7, 12, 25, 2, 47, 18, 24]
print(max_search(list))

아주 쉽게 콘솔에 답이 찍히게 됩니다.

그렇다면 다음으로는 문제를 살짝 바꿔보겠습니다.

 

이번에는 리스트에 숫자가 n개가 있을 때 가장 큰 값이 있는 위치 번홀을 돌려주는 알고리즘을 만들어 보겠습니다.

 

첫 문제가 최대값을 찾는 문제였다면 이번 문제는 최대값이 리스트의 몇 번째 방에 들어 있는지 판단하는 문제입니다.

 

첫 문제의 리스트를 보면[4, 7, 12, 25, 2, 47, 18, 24] 중 최대값 47이 들어있는 위치는 5번째 이기 때문에 답은 5입니다.

 

그렇다면 파이썬으로는 어떻게 코드를 작성해야 하는지 알아보겠습니다.

 

def max_index_search(list):
    n = len(list)							#입력 크기 n
    maxIndex = list[0]						#리스트 중 0번째 방을 최대값이 들어있는 위치로 설정
    for i in range(1, n):					
        if list[i] > list[maxIndex]:		#만약 이번 값이 현재 설정된 최대값보다 크면
            maxIndex = i					#최대값이 들어있는 위치를 변경
    return maxIndex

list = [4, 7, 12, 25, 2, 47, 18, 24]
print(max_index_search(list))

이번에도 간단하게 알고리즘을 만들어 보았습니다.

 

아주 쉽죠?

 

오늘은 파이썬으로 리스트의 최대값을 구하는 알고리즘을 만들어 보았습니다.

 

파이썬은 문법이 아주 간결하기 때문에 초보자들이 접하기 쉽다는 장점이 있어서

 

알고리즘 공부를 더 수월하게 할 수 있는 것 같습니다.

 

 

Comments