Programmers/프로그래머스-숫자 짝꿍-python

cosmos·2022년 11월 27일
0
post-thumbnail

문제

풀이

  • 교집합을 이용해 두 문자열의 공통요소를 찾은 뒤, count와 min 내장함수를 사용하여 공통요소를 가장 적게 사용하는 경우의 수 만큼 해당 요소를 사용하는식으로 접근하였다.

코드

# https://school.programmers.co.kr/learn/courses/30/lessons/131128
# programmers, level1: 숫자 짝꿍, python3
def solution(X: str, Y: str) -> str:
    answer = ""
    partner = set(X) & set(Y)

    if not partner:
        return '-1'

    for num in partner:
        answer += min(X.count(num), Y.count(num)) * num

    return ''.join(map(str, sorted(answer, reverse=True))) if sum([int(x) for x in answer]) != 0 else '0'

if __name__ == '__main__':
    print(solution("100", "2345"))     # "-1"
    print(solution("100", "203045"))   # "0"
    print(solution("100", "123450"))   # "10"
    print(solution("12321", "42531"))  # "321"
    print(solution("5525", "1255"))    # "552"
    print(solution("3403", "13203"))   # 330
    print(solution("5525", "1255"))    # 552

결과

출처 & 깃허브

프로그래머스
깃허브

0개의 댓글