알고리즘_코딩테스트/이것이 코딩테스트다
[그리디] 곱하기 혹은 더하기
논곰
2021. 12. 12. 00:44
"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다.
문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다.
소요시간: 7분 51초
1. 문제 설명
- 문자열이 주어질 때 +, *연산을 수행해서 최대값을 리턴시켜라
2. 접근 방식
- 0이 아니라면 무조건 곱하기가 훨씬 좋다. (라고 쉽게 생각했는데, 0뿐만 아니라 1일 때도 덧셈이 더 좋다는 것을 간과하고 있었다.)
- 문자열의 경우 리스트로 만들고 하나씩 뽑아서 연산을 수행한다.
3. 코드
def mul_add(x):
answer = 0
word_ls = list(x)
for i in word_ls:
now = int(i)
if now in (0, 1) or answer == 0 :
answer += now
else:
answer *= now
return answer
4. 코멘트
- 짧은 시간에 풀기 위해 집중했었는데, answer의 default값을 0으로해서 초반에 0*0이 되는 경우를 고려하지 못해 살짝 돌아갔다.