코딩테스트/👩‍💻 이코테

[이코테/greedy]곱하기 혹은 더하기

병아리는삐약삐약 2023. 9. 4. 15:01

문제

숫자로 이루어진 문자열 S가 주어졌을 때, 
왼쪽부터 +, x 연산을 수행하여 만들 수 있는 가장 큰 수를 구하라 ( 연산우선순위 고려x ,연산은 왼쪽부터)

 

정답

strs = list(map(int,input()))
 
result = 1
for s in strs:
    if s <=1:
        result+=s
    else:
        result*=s

print(result)

 

 

풀이

처음 풀 때는

보통 0이 아니면 곱연산이 더 큰 값을 만들 수 있을 거라고 생각해서

입력받은 문자열을 int로 바꿔서 리스트에 넣은 후 

원소를 차례대로 조회하면서 0이 아니라면 result에다가 곱하는 방식의 코드를 작성했다

 

근데 알고보니 1일때도 곱보단 합이 더 큰 수를 만들 수 있었다는 사실..

그래서 수정한 코드.