반응형
< 곱하기 혹은 더하기>
💬 문제 설명
각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요
....
| 입력 | 출력 |
| 02984 | 576 |
| 567 | 210 |
💬 입력 조건
- 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. ( 1 ≤ S의 길이 ≤ 20)
💬 출력 조건
- 첫째 줄에 만들어질 수 있는 가장 큰 수를 출력합니다.
✍ 문제요약
숫자로 이루어진 문자열 S가 주어지는데, 왼쪽 숫자 부터 차례대로 하나씩 연산을 진행한다. 여기서 유의할 점은 일반적인 사칙연산으로 진행되지 않고, 왼쪽부터 순서대로 진행한다. 'x' 와 '+' 만 이용해서 최대값을 구헤야한다.
✅ 문제 풀이
- 'x'와 '+' 만을 사용할 수 있는 경우 특정 상황을 제외하고는 'x' 값을 활용해야 큰 값을 얻을 수 있다.
- 연산이 이루어지는 두 수 중 하나라도 '1'인 경우 'x' 는 값이 커지지 않는데, '+'는 값이 커진다.
- 연산이 이루어지는 두 수 중 하나라도 '0'인 경우 'x' 는 값이 0이 되는데, '+'는 값이 유지된다.
- 연산이 이루어지는 두 수 모두 0,1 이 아니면 곱하기를 진행해야 큰 값이 된다.
numbers = input()
result = int(numbers[0]) # 첫 숫자를 result에 넣는다
for i in range(1,len(numbers)):
num = int(numbers[i]) # 숫자로 바꿔서 num에 대립
if num <= 1 or result <=1: # num이 1이하 or result 1이하이면
result += num # num을 더한다
else: # 그렇지 않으면
result *= num # num을 곱한다.
print(result)
반응형
'코딩테스트 > 이것이 코딩 테스트다' 카테고리의 다른 글
| [이것이 코딩 테스트다 with Python] Chapter 11. 그리디 - 무지의 먹방 라이브 (2) | 2023.12.02 |
|---|---|
| [이것이 코딩 테스트다 with Python] Chapter 11. 그리디 - 볼링공 고르기 (0) | 2023.12.01 |
| [이것이 코딩 테스트다 with Python] Chapter 11. 그리디 - 만들 수 없는 금액 (0) | 2023.12.01 |
| [이것이 코딩 테스트다 with Python] Chapter 11. 그리디 - 문자열 뒤집기 (0) | 2023.11.27 |
| [이것이 코딩 테스트다 with Python] Chapter 11. 그리디 - 모험가 길드 (2) | 2023.11.25 |
