n = input()
list = [int(char) for char in n]
number = 1
cnt = 0
# 1. 0이 없을 때
# 2. 처음에 0이 있을 때
# 3. 중간에 0이 있을 때
# 4. 마지막에 0이 있을 때
for num in list:
# print(num)
cnt += 1
if num == 0:
pass
elif num == 1:
number += num
else:
number *= num
print(number)
해결 아이디어
대부분의 경우 +보다는 *가 더 값을 크게 만듦
다만 두 수 중에서 하나라고 0이거나 1인 경우, 곱하기 보다는 더하기를 수행하는 것이 효율적임
두 수에 대해서 연산을 수행할 때, 두 수 중에서 하나라도 1 이하인 경우에는 더하며, 두 수가 모두 2이상인 경우에는 곱하면 정답임
풀이
#%%
data = input()
# 첫 번째 문자를 숫자로 변경하여 대입
result = int(data[0])
for i in range(1, len(data)):
# 두 수 중에서 하나라도 1이거나 0인 경우에 곱하기 보다는 더하기 수행
num = int(data[i])
if num <= 1 or result <= 1:
result += num
else:
result *= num
print(num)
#%% md
* 왜 에러가 나는지는 잘 모르겠지만,, 어쨌든 다른 파이썬 파일을 확인해보니 잘 돌아간다.
* 첫 번째 문자를 숫자로 변경하여 첫 문자로 설정하고
* 범위 내에 1이나 0이 있는 경우 혹은 첫 번째 수가 1이거나 0인 경우에 더하기
* 아닌 경우에 대해서 곱하기를 수행한다.