본문 바로가기

Python(알고리즘,문제풀이)/프로그래머스(입문100제)

코딩테스트입문 / 다항식 더하기

728x90

📚문제

출처 : 프로그래머스 / 다항식 더하기(https://school.programmers.co.kr/learn/courses/30/lessons/120863)

 

📝풀이

def solution(polynomial):
    
    polynomial_list = polynomial.split()
    num_list = []
    x_list = []
    x_coef_list = []
    
    for i in polynomial_list:
        if i.isdigit():
            num_list.append(int(i))
        elif i != '+':
            x_list.append(i)
    for i in x_list:
        if i=='x':
            x_coef_list.append(1)
        else:
            x_coef_list.append(int(i[:-1]))
    
    a = sum(x_coef_list) # x 계수의 합
    b = sum(num_list) # 상수항의 합
    
    if a ==0: # 일차항의 계수가 0일 때 => 상수항만 출력
        return f'{b}'
    elif a ==1: # 일차항의 계수가 1일 때 
        if b ==0:
            return 'x' # 1x아닌 x로 출력
        else:
            return f'x + {b}' # x + 상수항 
    elif a > 1: # 일차항의 계수가 1보다 클 때
        if b ==0:
            return f'{a}x' # ax 형태로 출력
        else:
            return f'{a}x + {b}' # ax + b 형태로 출력

문제를 읽고 조금씩 코드를 작성 해나가다보면 많이 어려운 문제는 아니다

 

처음에 코드 실행까진 맞았는데 최종제출에서 계속 똑같이 틀려서 

시간이 좀 걸렸다

 

처음부터 차근차근 다시 실행해보고 확인해보니까

x_coef_list.append(int(i[:-1])) # 17번째 줄

x의 계수들의 리스트를 구하는 코드인데

i[0[으로 해주어서 x의 계수가 두자리수 (ex 50 ,39...)

등이 나오면 처음 숫자밖에 인식이 되지 않아서 5, 3 등의 값이 들어갔다

 

그래서 x를 제외한 문자열의 모든 부분을 슬라이싱 후

x의 계수들의 리스트에 추가해주었다

728x90