Programmers

[프로그래머스 / 파이썬 풀이] 숫자 짝꿍

Hoo_Dev 2023. 1. 18. 10:34
def solution(X, Y):
    answer = ''
    count_X = [0] * 10
    count_Y = [0] * 10
    
    for i in [X, Y]:
        for j in i:
            if i == X:
                count_X[int(j)] += 1
            else:
                count_Y[int(j)] += 1

    for i in range(9, -1, -1):
        add = ''

        if count_X[i] <= count_Y[i]:
            add = str(i)*count_X[i]
        else:
            add = str(i)*count_Y[i]
        answer += add
        
    if answer == '':
        answer = '-1'
    if answer[0] == '0':
        answer = '0'
    
    return answer

각 배열에 카운팅을 해주고 해당 숫자를 카운팅한 배열끼리 비교하여 그 수가 적은 값만큼 인덱스와 곱하여 넣어준다.

솔팅을 위해 뒤에서부터 for문을 순회하여 answer에 더해준다.

00일 땐 '0'을 리턴하고, answer가 존재 하지 않으면 '-1'을 리턴해야한다.

 

형변환은 시간을 많이 잡아먹는다. 처음엔 리턴값을 형변환해줘 풀이 했는데 시간초과..