다음의 코드를 기초로 최댓값을 찾아보는 알고리즘 작성해보기
input = [4, 7, 5, 3, 2, 8]
def find_max_num(array):
# 이 부분에 알고리즘을 채워보자!
return ?
result = find_max_num(input)
print(result)
우리는 직관적으로 8이 리스트 안에서 가장 큰 값이라는 생각이 들지만,
컴퓨터가 직접 어떤 규칙에 따라 최댓값을 찾아 볼 수 있도록 명령어를 입력해줘야 한다.
한 번 직접 코드를 작성해보고 다음 해답을 살펴보자
기본적으로 비교할 변수를 설정해줬다.
첫 번째 방식 : 두 변수를 설정하고, 한 변수가 항상 값이 컸을 때만 반환하기
- 작성할 함수에는 for문을 활용하는데, num과 compar_num 두 개 변수 설정하였고, 변수 num은 compare_num과 비교하면서 최댓값을 찾을 수 있도록하였다. 만약 리스트의 각 요소에 num이 대입하는 동안 num이 compare_num 보다 계속 컸다면(즉, 최댓값) 마지막에 num을 반환한다.
input = [4, 7, 5, 3, 2, 8]
def find_max_num(array):
for num in array:
for compare_num in array:
if num < compare_num:
break
else:
return num
result = find_max_num(input)
print(result)
실행결과 ==> 8
두 번째 방식 : 최댓값을 찾았을 때 그 값을 저장하기
- 이번에는 num과 max_num을 변수로 설정하였다. 대신 첫 번째와 달리, for문 내에서 max_num의 초기값을 배열의 첫번째 요소(=array[0])로 먼저 설정하였다. 결국 찾으려는 값은 max_num이다. 만약 num에 리스트의 각 요소를 대입해보면서 num이 max_num의 값보다 크다면 그 값을 max_num의 값으로 저장하게 했다. 값이 적었다면, 다시 값을 비교하며 더 큰 값을 찾을 때까지 반복했을 것이다.
input = [4, 7, 5, 3, 2, 8]
def find_max_num(array):
max_num = array[0]
for num in array:
if num > max_num:
max_num = num
return max_num
result = find_max_num(input)
print(result)
실행결과 ==> 8
'개발기초' 카테고리의 다른 글
알고리즘: 시간 복잡도와 공간복잡도 (0) | 2022.11.22 |
---|---|
알고리즘 : 기본 예제, 빈도수 찾기 (0) | 2022.11.22 |
알고리즘: 알고리즘의 의미와 필요성(개발자 입문) (0) | 2022.11.22 |
파이썬 기초문법 뽀개기 : map, lamda, filter !! 리스트 내의 원소 활용 (0) | 2022.11.21 |
파이썬 기초문법 뽀개기 : 한 줄의 마법, 코드 줄여쓰기 (0) | 2022.11.21 |
댓글