본문 바로가기

Python_Matter/[Check_IO]Elementary

Max Digit

반응형

Quiz>

You have a number and you need to determine which digit in this number is the biggest.

 

Input: 

A positive int.

 

Output:

An Int (0-9).

 

Example:

max_digit(0) == 0
max_digit(52) == 5
max_digit(634) == 6
max_digit(1) == 1
max_digit(10000) == 1

 

def max_digit(number: int) -> int:
    # your code here
    return 0


if __name__ == '__main__':
    print("Example:")
    print(max_digit(0))

    # These "asserts" are used for self-checking and not for an auto-testing
    assert max_digit(0) == 0
    assert max_digit(52) == 5
    assert max_digit(634) == 6
    assert max_digit(1) == 1
    assert max_digit(10000) == 1
    print("Coding complete? Click 'Check' to earn cool rewards!")

 

Solve>

1. 0이 아닌 숫자가 입력됬을때 정수를 문자열로 바꾸고 그것을 리스트화 시킨다.

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))

 

2. 만든 리스트를 내림차순 정렬을 하면 가장 큰 숫자가 앞으로 온다.

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))
        number_list.sort(reverse=True)

 

3. 초기값을 설정 해준다.

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))
        number_list.sort(reverse=True)
        initial_value = 0

 

4. 리스트에서 맨 앞이 가장 큰 수이므로 가장 큰 수만 초기값에 더한다.

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))
        
        number_list.sort(reverse=True)
        
        initial_value = 0
        
        for i in number_list[:1]:
            initial_value += i

 

5. 구한 값을 반환으로 준다.

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))
        number_list.sort(reverse=True)
        
        initial_value = 0
        
        for i in number_list[:1]:
            initial_value += i
            
        return initial_value

 

6. 0이 입력 됫을경우 return을 주면 None이 출력되므로 예외처리해서 0을 반환해준다.

def max_digit(number: int):
    except ZeroDivisionError:
        return number

 

Code>

def max_digit(number: int):
    try:
        number_list = list(map(int, list(str(number))))
        
        number_list.sort(reverse=True)
        
        initial_value = 0
        
        for i in number_list[:1]:
            initial_value += i
            
        return initial_value

    except ZeroDivisionError:
        return number

 

Example>

if __name__ == '__main__':
    print("Example:")
    print(max_digit(0))

 

Result>

Example:

0

반응형

'Python_Matter > [Check_IO]Elementary' 카테고리의 다른 글

Beginning Zeros  (0) 2020.04.11
Split Pairs  (0) 2020.04.11
Replace First  (0) 2020.04.11
Remove All Before  (0) 2020.04.11
Backward String  (0) 2020.04.11