사용자로부터 숫자 5개를 입력받고, 가장 큰 값을 찾아서 반환하는 함수를 작성하고, 가장 큰 입력값을 출력하는 프로그램을 작성하시오.
<요구사항>
1) 우선 def를 사용하여 프로그램을 작성해야한다.
2) 5개의 입력을 받는 것이 전제조건이므로 list(map(int, input().split())) 을 사용하여 5개의 정수를 입력받는다.
여기서 주의할 점은 5개의 입력을 받지 않는다면, 개수를 정확하게 입력하라는 조건문이 필요하다
3) 5개의 정수를 리스트로 입력받았으므로, max(list)를 사용하지 않고 리스트의 첫 번째 값을 가장 큰 값으로 가정한다
4) for문을 통해 리스트를 순회하며 첫 번째의 값과 각각의 값을 비교하며 큰 값을 가장 큰 값으로 저장한다.
def find_max():
# 5개의 입력을 받아야 하는데, 이런식으로 작성하면 입력 값의 개수가 틀리면 다시 수행하라는 출려값을 내주어야함
nums = list(map(int, input().split()))
if len(nums) != 5:
print(f'입력 값 : {nums}의 개수가 {len(nums)}개 입니다. 5개를 입력해주세요')
else:
max_nums = nums[0]
for i in nums:
if i > max_nums:
max_nums = i
return max_nums
result = find_max()
print(f'입력하신 5개의 정수에서 가장 큰 값은 {result}입니다')
# 입력 값 => 1 2 3 4 5
# 출력 : 입력하신 5개의 정수에서 가장 큰 값은 5입니다
def find_max():
# 5개의 입력을 받아야 하는데, 이런식으로 작성하면 입력 값의 개수가 틀리면 다시 수행하라는 출려값을 내주어야함
nums = list(map(int, input().split()))
if len(nums) != 5:
print(f'입력 값 : {nums}의 개수가 {len(nums)}개 입니다. 5개를 입력해주세요')
else:
max_nums = nums[0]
for i in nums:
if i > max_nums:
max_nums = i
return max_nums, nums #return 값을 튜플로 반환하도록 수정하였다.
result = find_max()
print(f'입력하신 5개의 정수{result[1]}에서 가장 큰 값은 {result[0]}입니다')
# 입력 값 => 1 2 3 4 5
# 출력 : 입력하신 5개의 정수[1, 2, 3, 4, 5]에서 가장 큰 값은 5입니다
내가 원하는대로 출력되는 것을 확인하였다.
이 문제에서 복기할 내용은
1) 함수에서 반환 값을 tuple 또는 list로 할 수 있다는 점이다.
2) 반환 값을 변수애 지정하고 f-string을 사용하여 출력하면 원하는 출력 결과를 확인할 수 있다.