본문 바로가기

알고리즘 (Python)/이것이 코딩 테스트다 with 파이썬

[그리디 알고리즘] 곱하기 혹은 더하기 - 파이썬(python)

728x90
반응형

곱하기 혹은 더하기

난이도 : 下 풀이 시간 : 30분

시간 제한 : 1초 메모리 제한 : 128 MB

 


 

해답

 

s = input()

result = int(s[0])

for i in range(1, len(s)):
    if int(s[i]) <= 1 or result <= 1:
        result = result + int(s[i])
    else:
        result = result * int(s[i])

print(result)

예시

 

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)

해설

 

수 중에서 하나라도 '0' 혹은 '1'인 경우, 더하기를 수행하는 것이 효과적입니다.
다시 말해 두 수중 하나라도 1 이하인 경우에는 더해주고, 두 수가 모두 2 이상인 경우에는 곱해주면 됩니다.
728x90
반응형