문제
풀이
- 교집합을 이용해 두 문자열의 공통요소를 찾은 뒤, count와 min 내장함수를 사용하여 공통요소를 가장 적게 사용하는 경우의 수 만큼 해당 요소를 사용하는식으로 접근하였다.
코드
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"))
print(solution("100", "203045"))
print(solution("100", "123450"))
print(solution("12321", "42531"))
print(solution("5525", "1255"))
print(solution("3403", "13203"))
print(solution("5525", "1255"))
결과
출처 & 깃허브
프로그래머스
깃허브