-
그리디 알고리즘 : 곱하기 혹은 더하기 - 파이썬 (python)알고리즘/그리디 2021. 3. 20. 15:04
- 입력 조건
첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. (1<=S의 길이<=20)
- 출력 조건
첫째 줄에 만들어질 수 있는 가장 큰 수를 출력합니다.
테스트케이스 1) 02984 -> 576
테스트케이스 2) 567 -> 210
* 방법1
아이디어: 숫자를 사용자로부터 입력받아 리스트로 변경한다. 초기 result 값을 0으로 설정하고 result 값이 0이거나 i 값이 0 또는 1이면 덧셈 연산을 수행한다. (어떤 숫자에 0이나 1을 곱한 값보다 0이나 1을 더한 값이 더 크기 때문) 이 경우가 아니라면 곱셈의 결과가 더 크기 때문에 곱셈을 수행한다.
s = list(input()) # s = input() 도 가능 result = 0 for i in s: if result == 0: result += int(i) elif int(i) == 1: result += int(i) elif int(i) == 0: result += int(i) else: result *= int(i) print(result)
* 방법2
답안 예시이며 아이디어는 동일하나 구현 방법에 차이
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)
github.com/501501/codingTest/commit/cb9265592bc6e792e0cdaa1b03787f0d5543ebba
'알고리즘 > 그리디' 카테고리의 다른 글
그리디 알고리즘 : 무지의 먹방 라이브 - 파이썬 (python) (0) 2021.03.23 그리디 알고리즘 : 볼링공 고르기 - 파이썬 (python) (0) 2021.03.20 그리디 알고리즘 : 만들 수 없는 금액 - 파이썬 (python) (0) 2021.03.20 그리디 알고리즘 : 문자열 뒤집기 - 파이썬 (python) (0) 2021.03.20 그리디 알고리즘 : 모험가 길드 - 파이썬 (python) (1) 2021.03.17