CS/알고리즘
[그리디] 곱하기 혹은 더하기
erase-jeong
2024. 12. 9. 22:46
<문제> 곱하기 혹은 더하기 : 문제 설명 & 문제 조건
<문제> 곱하기 혹은 더하기 : 문제 해결 아이디어
- 대부분의 경우 '+' 보다는 'x'가 더 값을 크게 만든다.
- 예를 들어 5+6=11이고, 5 X 6 = 30
- 다만 두 수 중에서 하나라도 '0' 혹은 '1'인 경우, 곱하기보다는 더하기를 수행하는 것이 효율적이다.
- 따라서 두 수에 대하여 연산을 수행할 때, 두 수 중에서 하나라도 1 이하인 경우에는 더하며, 두 수가 모두 2 이상인 경우에는 곱하면 정답이다.
<문제> 곱하기 혹은 더하기 : 답안 예시 (Python)
data=input()
#첫 번째 문자를 숫자로 변경하여 대입
result=int(data[0])
for i in range(1,len(data)):
#두 수 중에서 하나라도 '0' 혹은 '1'인 경우, 곱하기보다는 더하기 수행
num=int(data[i])
if num<=1 or result<=1:
result+=num
else:
result*=num
print(result)
<문제> 곱하기 혹은 더하기 : 내 풀이
arr=list(input())
arr=list(map(int,arr))
result=arr[0]
for i in range(1,len(arr)):
if result==0 or arr[i]==0:
result+=arr[i]
else:
result*=arr[i]
print(result)