본문 바로가기

Algorithm/Implementation

(Python3) - 프로그래머스(코딩테스트 입문) : 다항식 더하기

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120863

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

구현 문제였습니다

📕 풀이방법

📔 입력 및 초기화

1. 정답변수 answer선언 후 빈 문자열로 저장합니다.

 

2. x항의 계수 x_expr, 숫자 num_expor선언 후 0, 0으로 초기화합니다.

 

3. 항을 공백으로 구분해 list형태로 만들어 polynomial을 갱신합니다.

📔 풀이과정

polynomial에 대해 loop를 수행하며 다음을 진행합니다.

 

1. 마지막이 'x'인 경우 x항이므로 x의 앞문자열을 slice해 비어있다면 1인 것에 주의해 정수형으로 바꿔 e_expr 더해줍니다.

 

2. 이외에 '+'가 아닌 경우 num_expr에 정수형으로 변환해 더해줍니다.

 

3. x항이 존재한다면 1일때는 x만을, 아니라면 계수에 x를 answer 뒤에 붙여줍니다.

 

4. 숫자항이 존재한다면 x항이 있을 때는 앞에 ' + '를 붙여줍니다. 이후 숫자 부분을 문자열로 바꿔 answer 뒤에 붙여줍니다.

📔 정답 출력 | 반환

 

answer를 반환합니다.


📕 Code

📔 Python3

def solution(polynomial):
    answer = ''
    x_expr, num_expr = 0, 0
    polynomial = polynomial.split(' ')
    for p in polynomial:
        if p[-1] == "x":
            print(p)
            sliced = p[:-1]
            if sliced == "":
                sliced = '1'
            x_expr += int(sliced)
        elif p != '+':
            num_expr += int(p)
    if x_expr != 0:
        if x_expr == 1:
            answer = 'x'
        else:
            answer = str(x_expr) + 'x'
    if num_expr > 0:
        if x_expr > 0:
            answer += ' + '
        answer += str(num_expr)
    return answer

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.