각 자리가 0~9인 숫자로만 이루어진 문자열 S가 주어졌을 때 왼쪽부터 오른쪽으로 숫자 사이에 '+' 혹은 'x'만 써서 제일 큰 숫자 만들기
<제한 사항>
시간 제한 : 1 sec
메모리 제한 : 128 MB
<입력>
문자열 S가 주어진다. (1 <= len(S) <= 20)
<출력>
가장 큰 수를 출력한다
<예시>
02984
576
567
210
1212
8
len(S) = 20 -> 성공
arr = list(map(int, input()))
result = 0
for i in arr:
if result * i >= result + i:
result *= i
else:
result += i
print(result)
data = input()
result = int(data[0])
for i in range(1, len(data)):
num = int(data[i])
if num <= 1 or result <= 1:
result += num
else:
result *= num
print(result)
간단한 문제. 책 풀이와 비교하면 나는 배열을 쓴 것, 첫 번째 숫자는 연산이 따로 필요없는데 연산한 점이 다르다.
출처 : 이것이 취업을 위한 코딩테스트다 with 파이썬 - 나동빈