less than 1 minute read

출처

다항식 더하기 풀이

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