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)