goodthings4me.tistory.com
■ 숫자를 연속적으로 입력받고, 입력받은 숫자들 중에서 최대값을 찾고, 그 최대값의 위치와 최대값이 몇 번 더 있는지 알려주기
import copy
def main():
num_list = []
while True:
num = input("숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> ")
try:
if num == 'q':
break
else:
num_list.append(int(num))
except Exception as err:
print(err, '\n--> 숫자를 입력해주세요!!')
continue
if len(num_list) != 0:
max, index, equi_cnt = max_judge(num_list)
print('\n입력한 숫자 리스트는 {}이고,'.format(num_list))
print('최대값은 {}, 최대값의 위치(Index)는 {}입니다.'.format(max, index), end='')
if equi_cnt > 1:
print(' 그리고 최대값과 같은 숫자는 총 {}개 입니다.'.format(equi_cnt))
def max_judge(arg):
arg = copy.deepcopy(arg)
max_v = arg[0]
index = 0
equi_cnt = 0
for i in range(1, len(arg)):
if arg[i] > max_v:
max_v = arg[i]
index = i
equi_cnt = arg.count(arg[index])
return max_v, index, equi_cnt
main()
[실행 결과]
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 34
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 23
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 56
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 12
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 7
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 54
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 33
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 56
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> 36
숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> q
입력한 숫자 리스트는 [34, 23, 56, 12, 7, 54, 33, 56, 36]이고,
최대값은 56, 최대값의 위치(Index)는 2입니다. 그리고 최대값과 같은 숫자는 총 2개 입니다.
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 피보나치(Fibonacci) (0) | 2020.08.25 |
---|---|
[python] 주어진 6개의 숫자 맞추기(로또번호 맞추기) (0) | 2020.08.24 |
[python] 주사위 게임 (0) | 2020.08.23 |
[python] 패킹(packing), 언패킹(unpacking) 그리고 가변인자 (0) | 2020.08.23 |
[python] 제너레이터(Generators) 함수 & 표현식 (0) | 2020.08.21 |
댓글