[Python]알고리즘/이코테 2021

[그리디 알고리즘] 문제2 - 곱하기 혹은 더하기

HSY_mumu 2022. 3. 18. 13:03
728x90

곱하기 혹은 더하기

1) 문제 해결 아이디어

두 수 중 하나라도 1 이하인 경우 더하기, 두 수 모두 2 이상인 경우 곱하기

일반적으로 + 보다 x 가 더 값을 크게 만듦

but, 두 수 중 하나라도 0 / 1이면 더하기를 수행하는 것이 효율적

 

2) 정당성 분석


3) 소스코드

s = input()  # 0~9로 구성된 문자열
res = int(s[0])  # 첫번째 문자를 정수형 변환하여 저장

for i in range(1, len(s)):
  num = int(s[i])
  # 두 수가 모두 2이상이면 곱하기
  if(res > 2 and num > 2):
    res *= num
  # 하나라도 1이하이면 더하기
  else:
    res += num
print(res)

 

728x90