input = [0, 3, 5, 6, 1, 2, 4]
# Q. 다음과 같이 0 혹은 양의 정수로만 이루어진 배열이 있을 때,
# 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며
# 숫자 사이에 '✕' 혹은 '+' 연산자를 넣어 결과적으로
# 가장 큰 수를 구하는 프로그램을 작성하시오.
# 단, '+' 보다 '✕' 를 먼저 계산하는 일반적인 방식과는 달리,
# 모든 연산은 왼쪽에서 순서대로 이루어진다.
# 숫자가 0이나 1이면 더하는게 이득이다
# sum이 0이나 1이면 더하는게 이득이다.
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(input)
print(result)
숫자가 0 이나 1이면 곱하면 더 작으니까 더하고
0이나 1이 아니면 곱한다
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘] 링크드리스트 delete_node구현 (0) | 2021.06.13 |
---|---|
[알고리즘] 링크드리스트 print_all구현 (0) | 2021.06.13 |
[알고리즘] 시간 복잡도 판단하기 (0) | 2021.06.12 |