ror_coding

[Programmers] 숫자 짝꿍 - 131128 본문

Algorithm/Python

[Programmers] 숫자 짝꿍 - 131128

ro_rdil_31 2024. 10. 22. 22:20
728x90

from collections import Counter 사용하기.

같은 숫자 여러 개일 때 개수로 한 번에 answer에 담아주기 때문에 시간 초과가 일어나지 않는다 !

 

Question

 

두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다.

두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해주세요.

 

Code (After)

 

from collections import Counter
def solution(X, Y):
    answer = ''
    counter = Counter(X) & Counter(Y)
    for i in sorted(counter.keys(), reverse=True): answer += i*counter[i]
    
    if answer != '' and answer.count('0') == len(answer) : return '0'
    return answer if answer else '-1'

 

Code (Before)

 

from collections import Counter
def solution(X, Y):
    answer = ''
    x = Counter(X)
    y = Counter(Y)
    
    for i in x :
        if i in y :
            answer += i*min(x[i],y[i])
    if answer !='' and answer.count('0') == len(answer) : return '0' 
    return ''.join(sorted(answer,reverse=True)) if answer!='' else "-1"

 

now me

On my github

 

728x90