첫 번째 방법
input에 들어있는 숫자를 for문을 한 번 더 돌려서 차례대로 비교해가는 방식
ex)3 <- 5,6,1,2,4 5 <- 3,6,1,2,4 ....
input = [3, 5, 6, 1, 2, 4]
# 앞 뒤 숫자 비교 해서 큰 수
def find_max_num(array):
for num in array:
for compare in array:
if num < compare:
break
else:
return num
result = find_max_num(input)
print(result)
num과 compare 값을 비교해서 비교하는 숫자인 compare값이 더 클 경우 num을 array의 다음 값으로 변경한 후, 다시 이러한 과정을 반복한 후, for문이 한 번도 멈추지 않을 경우 가장 큰 수 이므로 그 값을 반환해준다.
O(n²)으로 코드를 좀 더 개선 할 수 있다
두 번째 방법
최대 값을 변수에 지정해 놓고 그 값보다 큰 수가 생기면 그때그때 최대 값을 변경해 준 후 마지막에 출력해주는 방식
input = [3, 5, 6, 1, 2, 4]
# max 값을 넣어 놓고 더 큰 수가 있을 경우 max 값 수정
def find_max_num(array):
max_num = array[0]
for num in array:
if max_num < num:
max_num = num
return max_num
result = find_max_num(input)
print(result)
3보다 5가크므로 최대 값은 5로 바뀌고, 그 후 num을 6일 때 최대 값은 6이므로 max넘을 6으로 변경해준다.
그 후 이와 같은 과정을 반복해서 max_num에 들어가는 숫자를 반환해준다.
'스파르타 코딩클럽 > 1주차' 카테고리의 다른 글
| 반복되지 않는 첫 번째 문자 출력하기 (0) | 2022.03.13 |
|---|---|
| 곱하거나 더해서 가장 큰 수 만들기 (0) | 2022.03.13 |
| 입력된 숫자가 존재하면 True 없으면 False 출력하기 (0) | 2022.03.13 |
| 빈도수가 높은 알파벳 출력하기 (0) | 2022.03.13 |
| 알파벳 빈도수 구하기 (0) | 2022.03.13 |