💻 입력 조건

  • 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. (1<=S의 길이<=20)

💻 출력 조건

  • 첫째 줄에 만들어질 수 있는 가장 큰 수를 출력합니다.

💻 입력 예시 1

02984

💻 출력 예시 1

576

💻 입력 예시 2

567

💻 출력 예시 2

210

📖 문제 해결
보통의 경우 곱하기가 더하기보다 더 빠르게 큰 숫자를 만들기에 최대한 곱하기를 활용하는 방향으로 가되, 더하기를 사용해야만 하는 경우가 있다면 그때는 더하기를 사용하도록 하는 코드를 작성하고자 하였습니다.
그다음 '더하기를 사용해야만 하는 경우'는 언제일지에 대해 고민을 해보았고, 결과적으로 현재까지 계산한 result가 0과 1이거나 현재 계산하고자 하는 item의 값이 0 혹은 1이라면 덧셈을 사용하는 것이 더 수를 크게 만드는 방법임을 알 수 있었습니다. 따라서 이를 반영한 코드는 다음과 같습니다.

input_list = list(map(int,input()))

result = 0
for index,num in enumerate(input_list):
    
    if index == 0:
        result = num
        
    elif result <= 1 or num <= 1:
        result += num
        
    else:
        result *= num
        
print(result)
profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글