출처
다항식 더하기 풀이
def solution(polynomial):
x, v = 0, 0
# 일차항이 0이면 공백문자열로 시작하고
# 일차항이 1이면 x로 시작한다.
XDB = ['', 'x']
# 일단 " + " 단위로 쪼갠다.
# 일차항의 경우 숫자로 변환하기 위해 x문자를 제거한다.
for node in polynomial.split(" + "):
if node[-1] == 'x':
x += int(node[:-1]) if node[:-1] else 1
else:
v += int(node)
# XDB로 다시 숫자에 x를 붙여준다.
x = (str(x)+'x' if x>=2 else XDB[x])
# 숫자를 문자로 변환한다.
# 숫자가 0이면 공백이 된다.
v = str(v) if v>=1 else ''
# 만약 일차항과 숫자가 모두 공백이 아니라면
# ' + '를 가운데에 붙여서 반환한다.
return x +' + '+ v if x and v else x+v
저주의숫자3 풀이
def solution(n):
# 숫자가 1일때 답은 1이다.
answer = 1
# n-1번 반복을 돌리면 n일때의 3x마을에서 쓰는 숫자를 구할수 있다.
# 매 iteration에서 3이 숫자에 들어있는지, 3으로 나눠지는지 검사하여 1씩 계속증가시킨다.
for _ in range(n-1):
answer += 1
while answer%3==0 or '3' in str(answer):
answer += 1
return answer
Leave a comment