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
반응형
'알고리즘 (Python) > 이것이 코딩 테스트다 with 파이썬' 카테고리의 다른 글
[그리디 알고리즘] 만들 수 없는 금액 - 파이썬(python) (0) | 2021.08.04 |
---|---|
[그리디 알고리즘] 문자열 뒤집기 - 파이썬(python) (0) | 2021.08.04 |
[그리디 알고리즘] 모험가 길드 - 파이썬(python) (0) | 2021.07.26 |
[그래프 이론 알고리즘] 커리큘럼 - 파이썬(python) (0) | 2021.07.20 |
[그래프 이론 알고리즘] 도시 분할 계획 - 파이썬(python) (0) | 2021.07.20 |