[파이썬] 곱하기 or 더하기 - 페이스북 기출문제
2021. 5. 2. 16:49ㆍ개발공부/알고리즘
Q. 다음과 같이 0 혹은 양의 정수로만 이루어진 배열이 있을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 '✕' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 구하는 프로그램을 작성하시오.
단, '+' 보다 '✕' 를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서 순서대로 이루어진다.
input = [0, 3, 5, 6, 1, 2, 4]
def find_max_plus_or_multiply(array):
num = 0
for i in array:
if i <= 1 or num <= 1:
a= i + num
elif i > 1:
a= i * num
num = a
return num
result = find_max_plus_or_multiply(input)
print(result)
시간복잡도: O(N)
'개발공부 > 알고리즘' 카테고리의 다른 글
[파이썬] 백준 9461 파도반 수열 (0) | 2021.05.02 |
---|---|
[파이썬] 백준 1037 약수 & 2609 최대공약수와 최소공배수 (0) | 2021.05.02 |
[파이썬] 백준 2884 알람시계 (0) | 2021.05.02 |
[파이썬] 백준 10250 ACM호텔 (0) | 2021.05.02 |
[파이썬] 백준 2869 달팽이는 올라가고 싶다 (0) | 2021.04.26 |