항해35일차
프로그래머스의 '숫자 짝궁' 문제에서 주어진 입력값 `"100"`과 `"2345"`에 대해 기댓값이 `-1`인 이유는 두 숫자 문자열 간에 공통된 숫자가 없기 때문입니다. 따라서, 공통된 숫자가 없을 경우 `-1`을 반환해야 합니다.
이 문제를 해결하기 위해서는 공통된 숫자가 없을 때 `-1`을 반환하도록 코드를 수정해야 합니다. 아래는 수정된 코드입니다.
## 수정된 파이썬 코드
```python
def solution(X, Y):
from collections import Counter
# 각 숫자의 등장 횟수를 세기
count_X = Counter(X)
count_Y = Counter(Y)
# 공통 숫자 찾기
common_digits = []
for digit in range(9, -1, -1): # 9부터 0까지
str_digit = str(digit)
if str_digit in count_X and str_digit in count_Y:
# 공통 숫자의 최소 개수만큼 추가
common_count = min(count_X[str_digit], count_Y[str_digit])
common_digits.append(str_digit * common_count)
# 결과 문자열 만들기
if not common_digits:
return "-1" # 공통된 숫자가 없을 경우 -1 반환
result = ''.join(common_digits)
# 결과가 0으로 시작하는 경우 처리
return result if result[0] != '0' else "0"
# 예시 사용
print(solution("100", "2345")) # 출력: "-1"
```
## 코드 설명
1. **Counter 사용**: 각 숫자 문자열에서 숫자의 개수를 세어 `count_X`와 `count_Y`에 저장합니다.
2. **공통 숫자 찾기**: 9부터 0까지의 숫자를 확인하여, 두 문자열에서 공통으로 등장하는 숫자를 찾습니다.
3. **결과 처리**: 공통된 숫자가 없으면 `-1`을 반환하고, 공통된 숫자가 있으면 이를 조합하여 결과를 반환합니다.
이제 이 코드를 사용하면 입력값 `"100"`과 `"2345"`에 대해 올바르게 `-1`을 반환할 것입니다.