본문 바로가기
코딩 연습/코딩배우기

[python] 입력받은 숫자 리스트에서 최대값과 그 위치(index) 찾기

by good4me 2020. 8. 24.

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()

good4me.co.kr

[실행 결과]

숫자를 입력하세요.(입력을 끝내려면 '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개 입니다.

 

댓글