알고리즘

[알고리즘] 이코테 - 곱하기 혹은 더하기

j9972 2022. 7. 21. 14:44
728x90

문제

곱하기 혹은 더하기 문제는 각 자리가 숫자 ( 0 ~ 9 )로 이뤄져 있을 때, 문자열 S가 왼쪽부터 오른쪽으로 하나씩 숫자를 확인하며 숫자 사이에 '*' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 만들고, 사칙연산의 규칙을 따르지 않고, 순차적으로 + 혹은 * 을 이룬다.

접근

지금 현재 존재하는 값이 0이거나 혹은 입력 받아온 값이 0일때는 +, 그 외의 조건에서는 * 을 하여서 가장 큰 수를 구할 수 있다.

 

풀이

s = input()

s_list = list(s)

count = int(s_list[0])

for i in range(1, len(s_list)):
    if s_list[i] == '0' or count == 0:
        count += int(s_list[i])
    else:
        count *= int(s_list[i])

print(count)