Home 곱하기 혹은 더하기 그리드
Post
Cancel

곱하기 혹은 더하기 그리드

각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ‘x’ 혹은 ‘+’연산자를 넣어 결과적으로 만들어 질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요

단 모든 연산은 우선자 대신 왼쪽부터 작동합니다.

예시) 02984 ((((0+2)x9)x8)x4) = 576

결국 해당 문자의 경우 최대의 크기를 위해서는 모두 곱해버리면 된다. 0과 1을 제외해서

1의 경우 더해줘야 한다.

1
2
3
4
5
6
7
8
9
10
11
data = input()

count = 1
for x in data:
    if x!='0':
        count = int(x)*count
    elif x=='1':
        count = int(x)+count
    else:
        continue
print(count)

끝이다. 값 for문으로 돌려서 0아닌 것만 모조리 곱해버리고 1일경우 더해주고

0이라면 더하거나 곱하는 연산을 수행하지 않아도 되니 넘어가면 된다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.