728x90
숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오
[3, 5, 6, 1, 2, 4]
라고 문제를 봤을 때 처음에는 그냥
a = [3, 5, 6, 1, 2, 4]
print(max(a))
이렇게 작성을 했었다.
그리고 강의를 더 들으니 아래 코드에 작성을 하라고 하셨다.
def find_max_num(array):
# 이 부분을 채워보세요!
return 1
result = find_max_num(input)
print(result)
그래서 아까 내가 작성한 코드를 그대로 적었다.
input = [3, 5, 6, 1, 2, 4]
def find_max_num(array):
a = max(array)
return a
result = find_max_num(input)
print(result)
그런데 이렇게 하는게 아니라 아래와 같이 작성을 하는 것이었다..!!
방법 1.
3을 뽑고 남은 숫자들을 비교하고 5를 뽑고 남은 숫자들을 비교하면서 큰 수를 찾아가는 것이다.
input = [3, 5, 6, 1, 2, 4]
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)
* 이해하기 쉽게 중간에 print()를 넣어 해석해봤다.
input = [3, 5, 6, 1, 2, 4]
def find_max_num(array):
for num in array:
print("num" , num)
for compare_num in array:
if num < compare_num:
print("compare_num" , compare_num)
break
else:
return num
result = find_max_num(input)
print(result)
해석
더보기
input = [3, 5, 6, 1, 2, 4]
def find_max_num(array):
for num in array: # 배열에 숫자를 각각 뽑아준다.
for compare_num in array: # num과 comapre_num을 뽑으면서 배열을 반복
if num < compare_num: # 배열에 있는 다른 값이 비교하는 값보다 작으면
## num이 3이고 compare_num이 5
## num이 5이고 compare_num이 6
break # 실패!
else:
return num
result = find_max_num(input)
print(result)
방법 2.
max_num을 변수로 설정하여 변수에 가장 큰 수를 기록한다.
input = [3, 5, 6, 1, 2, 4]
def find_max_num(array):
max_num = array[0] # 배열의 첫번째 숫자로 max_num 지정
for num in array :
if num > max_num :
max_num = num # 기록
return max_num
result = find_max_num(input)
print(result)
728x90