Q. 다음과 같이 0 혹은 양의 정수로만 이루어진 배열이 있을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 '✕' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 구하는 프로그램을 작성하시오.
단, '+' 보다 '✕' 를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서 순서대로 이루어진다.
[0, 3, 5, 6, 1, 2, 4]
[3, 2, 1, 5, 9, 7, 4]
[1, 1, 1, 3, 3, 2, 5]
input = [0, 3, 5, 6, 1, 2, 4]
multi = 0
def find_max_plus_or_multiply(array):
for num in array:
if num > 1:
multi = multi + num + '*'
else:
multi = multi + num + '+'
return multi
result = find_max_plus_or_multiply(input)
print(result)
# 왼쪽부터 오른쪽으로 하나 씩 모든 숫자 확인? for num in array:
# 숫자 사이에 X 혹은 + 연산자를 넣어 가장 큰 수를 구하는 프로그램?
# 숫자들 사이에 연산자를 어떻게 넣지?
# X 할지 + 할지 어떻게 정하지? 다 해보면 되지않나?
# 0과 1이면 + 를 넣고 그외에는 X 를 넣자! if 문 삽입 함수?
# 결과를 담을 변수가 필요해! multi
# 연산을 실행할 변수도 필요한것같은데 ...
# 배열의 길이 - 1 와 배열의 마지막 인덱스가 같으면 종료 리턴이네
# 0 + 3 * 5 * 6 * 1 + 2 * 4 *
def find_max_plus_or_multiply(array):
multiply_sum = 0
for number in array:
if number <= 1 or multiply_sum <= 1:
multiply_sum += number
else:
multiply_sum *= number
return multiply_sum
result = find_max_plus_or_multiply
print(result)