728x90
반응형
해당 문제 및 해설은 "이것이 코딩테스트 다 with 파이썬" 책을 기준으로 요약 및 정리하여 작성하였습니다.
문제
각 자리가 숫자(0부터 9) 로만 이루어진 문자열 S 가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ' X ' 혹은 ' + ' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단 + 보다 X 를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다.
예를 들어 02984 라는 문자열이 주어지면, 만들어질 수 있는 가장 큰 수는 ((((0 + 2) X 9 ) X 8) X 4 ) = 576 입니다.
입력조건
첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S 가 주어집니다. ( 1 ≤ S 의 길이 ≤ 20 )
출력조건
첫째 줄에 만들어질 수 있는 가장 큰 수를 출력합니다.
입력 예시 1 | 출력 예시 1 |
02984 | 576 |
입력 예시 2 | 출력 예시 2 |
567 | 210 |
내 코드 - 테스트 케이스 통과
data = list(map(int, input()))
sum = data[0]
for i in range(1, len(data)):
# 맨 처음 시작이 0인 경우를 제외한다.
if sum == 0:
sum += data[i]
continue
# 0이랑 1인 경우에만 더하기
if data[i] <= 1:
sum += data[i]
# 나머지 곱하기
else:
sum *= data[i]
print(sum)
정답 코드 - 통과
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)
728x90
반응형
'개발 > Coding Test - Python' 카테고리의 다른 글
[Python] 이것이 코딩테스트다 with 파이썬 - 볼링공 고르기 - 그리디 알고리즘 (0) | 2023.03.13 |
---|---|
[Python] 이것이 코딩테스트다 with 파이썬 - 만들 수 없는 금액 - 그리디 알고리즘 (0) | 2023.03.12 |
[Python] 백준 1439번 뒤집기 - 그리디 알고리즘 (0) | 2023.03.10 |
[Python] 백준 11880번 개미 - 기하학(geometry) (0) | 2023.03.09 |
[Python] 백준 11058번 크리보드 - 다이나믹 프로그래밍(DP) (0) | 2023.03.08 |