알고리즘

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

hminor 2024. 3. 7. 12:00

풀이

  • 첫 풀이 접근으로는
  • x의 각 문자에 해당하는 인덱스 값에 1증가, y에 해당하는 인덱스 값에 1 감소하면서
  • result에 추가하여 해결하려 했지만 시간초과가 발생
  • 그래서 x와 y에 교집합에 해당하는 문자를 찾고
  • 조건 분기로 같은 게 없다면 -1, 있지만 1개이고 그게 0이라면 개수에 상관없이 0을 return
  • 그게 아닐 경우엔 다음 return으로 가서 count를 사용하여 적은 만큼 출력하여 해결

 

def solution(x,y):
    xy = set(x) & set(y)
    if not xy: return "-1"
    elif len(xy) == 1 and "0" in xy: return "0"
    return "".join(sorted([i*min(x.count(i),y.count(i)) for i in xy], reverse=True))