오늘은 프로그래머스 131128번 문제인 "숫자 짝꿍" Lv.1을 파이썬으로 풀어보도록 하겠습니다.
[프로그래머스] 숫자 짝꿍 Lv.1 - [파이썬/python]
문제 설명 💻
두 정수 X
, Y
의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X
, Y
의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X
, Y
의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다.
예를 들어, X
= 3403이고 Y
= 13203이라면, X
와 Y
의 짝꿍은 X
와 Y
에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X
= 5525이고 Y
= 1255이면 X
와 Y
의 짝꿍은 X
와 Y
에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X
에는 5가 3개, Y
에는 5가 2개 나타나므로 남는 5 한 개는 짝 지을 수 없습니다.) 두 정수 X
, Y
가 주어졌을 때, X
, Y
의 짝꿍을 반환(return)하는 solution 함수를 완성해주세요.
제한사항 🚨
- 3 ≤
X
,Y
의 길이(자릿수) ≤ 3,000,000입니다. X
,Y
는 0으로 시작하지 않습니다.X
,Y
의 짝꿍은 상당히 큰 정수일 수 있으므로, 문자열로 반환합니다.
힌트 🌈
1. 공통 요소 찾기
set()연산을 사용하여 X와 Y에서 공통으로 나타나는 숫자를 찾을 수 있습니다.
이렇게 하면 두 숫자에서 공통으로 나타나는 숫자의 집합을 얻을 수 있습니다.
2. 가장 큰 수 만들기
공통으로 나타나는 각 숫자를 그것이 X와 Y에서 나타나는 횟수만큼 반복하여 문자열을 만들 수 있습니다.
그리고 이 문자열을 내림차순으로 정렬하면 가장 큰 수를 만들 수 있습니다.
!!!정답 주의!!!
소스 코드 🌟
테스트 결과 🏳🌈
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 캐릭터의 좌표 - Lv.0 (51) | 2023.10.06 |
---|---|
[프로그래머스] 공배수 - Lv.0 (43) | 2023.10.06 |
[프로그래머스] 둘만의 암호 - Lv.1 (49) | 2023.10.05 |
[프로그래머스] 기사단원의 무기 - Lv.1 (55) | 2023.10.03 |
[프로그래머스] 대충 만든 자판 - Lv.1 (75) | 2023.10.02 |