728x90
📚문제
📝풀이
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
'Python(알고리즘,문제풀이) > 프로그래머스(입문100제)' 카테고리의 다른 글
코딩테스트입문 / 안전지대 (방향탐색,BFS) (0) | 2023.08.03 |
---|---|
코딩테스트입문 / 숨어있는 숫자의 덧셈(2)(isalpha()) (0) | 2023.08.03 |
코딩테스트입문 / 캐릭터의 좌표 (0) | 2023.08.02 |
코딩테스트입문 / 직사각형 넓이 구하기 (0) | 2023.08.02 |
코딩테스트입문 / 머쓱이보다 키 큰 사람(filter 메서드) (0) | 2023.08.01 |