프로그래머스 다항식 더하기

Apic·2023년 2월 17일
0

프로그래머스

목록 보기
94/162

💡문제 설명

한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial
이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다.


🚫제한사항

  • 0 < polynomial
    에 있는 수 < 100
  • polynomial
    에 변수는 'x'만 존재합니다.
  • polynomial
    은 0부터 9까지의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다.
  • 항과 연산기호 사이에는 항상 공백이 존재합니다.
  • 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다.
  • 하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다.
  • " + 3xx + + x7 + "와 같은 잘못된 입력은 주어지지 않습니다.
  • "012x + 001"처럼 0을 제외하고는 0으로 시작하는 수는 없습니다.
  • 문자와 숫자 사이의 곱하기는 생략합니다.
  • polynomial
    에는 일차 항과 상수항만 존재합니다.
  • 계수 1은 생략합니다.
  • 결괏값에 상수항은 마지막에 둡니다.
  • 0 < polynomial
    의 길이 < 50

🔢입출력 예

polynomialresult
"3x + 7 + x""4x + 7"
"x + x + x""3x"

🔍입출력 예 설명

입출력 예 #1

  • "3x + 7 + x"에서 동류항끼리 더하면 "4x + 7"입니다.

입출력 예 #2

  • "x + x + x"에서 동류항끼리 더하면 "3x"입니다.

💻코드

def solution(polynomial):
    answer = ''
    
    nums = polynomial.split(' + ')
    sum_x = 0
    sum_num = 0
    for idx, i in enumerate(nums):
        if not i.isnumeric():
            if i[:-1] == '':
                sum_x += 1
            else:
                sum_x += int(i[:-1])
        else:
            sum_num += int(i)
            
    if sum_x == 1:
        if sum_num == 0:
            answer = 'x'
        else:
            answer = f'x + {sum_num}'
    elif sum_x > 1:
        if sum_num == 0:
            answer = f'{sum_x}x'
        else:
            answer = f'{sum_x}x + {sum_num}'
    elif sum_x == 0:
        if sum_num == 0:
            answer = ''
        else:
            answer = f'{sum_num}'
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/120863?language=python3

profile
코딩 공부하는 사람

0개의 댓글