알고리즘_코딩테스트/이것이 코딩테스트다

[그리디] 곱하기 혹은 더하기

논곰 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이 되는 경우를 고려하지 못해 살짝 돌아갔다.