Search

곱하기 혹은 더하기

문제 : 곱하기 혹은 더하기

각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 × 혹은 + 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 숫자를 구하는 프로그램을 만들어라. 단, + 보다 ×를 먼저 계산하는 일반적인 사칙연산 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정한다. 예를 들어, 02984라는 문자열이 주어진다면, 만들어질 수 있는 가장 큰 수는 순서대로 ((((0+2) × 9) × 8) × 4) = 576 이다.

입력 조건

첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어진다.(1 ≤ S의 길이 ≤ 20)

출력 조건

• 첫째 줄에 만들어질 수있는 가장 큰 수를 출력한다.

입력 예시

02984
Python
567
Python

출력 예시

576
Python
210
Python

풀이

해결에 필요한 핵심 아이디어: 곱할수 있으면 무조건 곱하자! (그리디)

해결 시나리오

검사하는 문자가 0이나 1인 경우엔 더하고 나머지 경우는 모두 곱한다.
연산에 사용하는 기존 결과값이 0일 땐 더하고, 그 외엔 모두 곱한다.
풀이

나동빈님 컨텐츠를 이용하시면 더 많고 자세한 내용을 얻을 수 있습니다.