본문 바로가기
Beakjoon&프로그래머스/Java

[프로그래머스/Java] 숫자 짝꿍

by 현장 2026. 3. 12.

-Code

import java.util.*;

class Solution {
    public String solution(String X, String Y) {
        // X와 Y의 각 숫자 갯수 세기
        int[] xCnt = new int[10];
        int[] yCnt = new int[10];
        for (char n : X.toCharArray()) {
            xCnt[n - '0']++;
        }
        for (char n : Y.toCharArray()) {
            yCnt[n - '0']++;
        }
        StringBuilder answer = new StringBuilder();
        // 9부터 0까지 공통 개수만큼 붙이기
        for (int i = 9; i >= 0; i--) {
            int cnt = Math.min(xCnt[i], yCnt[i]);
            for (int j = 0; j < cnt; j++) {
                answer.append(i);
            }
        }
        // 공통된 숫자가 없는 경우
        if (answer.length() == 0) return "-1";
        // 0이 반복되어 000이거나 한 경우
        if (answer.charAt(0) == '0') return "0";
        // 아니면 결과 출력
        return answer.toString();
    }
}

풀면서 2 가지 문제가 생겼습니다. 처음에는 포함된 값이면 추가하는 식으로 했으나 이렇게 하면 시간문제와 사용한 숫자를 제외해야 하는데 문제가 생겨 개수를 새는 방식이 더 좋다는 힌트를 보고 수정했고, 두 번째 문제는 0이 반복되어 출력된 경우를 간과하여서 해당 부분을 수정해 해결했습니다.