
각 자리가 숫자로만 이루어진 문자열 S가 주어졌을 때,
왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어
결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.
단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정한다.
예를 들어 02984라는 문자열이 주어지면,
만들수 있는 가장 큰 수는 ((((0 + 2) X 9) X 8) X 4) = 576 이다.
또한 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어진다.
02984
출력 예시 1
576
입력 예시 2
567
출력 예시 2
210
# Input
data = input()
# Try
def func(data):
result = 0
for i in range(len(data)):
x = int(data[i])
if x == 0 or x == 1:
result += x
else:
if result == 0:
result += 1
result *= x
return result
print(func(data))
02984
576
# 입력값 1
data = '111111'
# 예상 출력값 : 6
print(func(data))
6
# 입력값 2
data = '000000'
# 예상 출력값 : 0
print(func(data))
0
# 입력값 3
data = '91091'
# 예상 출력값 : 91
print(func(data))
91
0 또는 1인 경우에 더하기, 그 이외에는 곱하기 연산 이라는 풀이가 쉽게 생각나서 빠르게 풀 수 있었다.