Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[Lv.1_Java] 숫자 짝꿍 본문

알고리즘테스트/Programmers

[Lv.1_Java] 숫자 짝꿍

코딩거인 2023. 8. 10. 09:28
728x90

class Solution {
    public String solution(String X, String Y) {
        StringBuilder answer = new StringBuilder();

        int [] xArr = new int [10];
        int [] yArr = new int [10];
        
        for(int i = 0; i < X.length(); i++){
            xArr[X.charAt(i) - '0']++;
        }
        for(int i = 0; i< Y.length(); i++){
            yArr[Y.charAt(i)-'0']++;
        }
        
        for(int i = 9; i >= 0; i--){
            for(int j =0; j<Math.min(xArr[i], yArr[i]); j++){
                answer.append(i);
            }
        }
        if(answer.length() == 0) return "-1";
        if(answer.charAt(0) == '0') return "0";
        
        return answer.toString();
    }
}

숫자 짝꿍...... 어마무시했다...!

계속 구글링 하면서 찾아본 결과 StringBuilder 을 사용해주어야 풀 수 있었다!

String 와 StringBuilder, StringBuffer 의 차이는 나중에 다시 정리해서 포스팅 할 것이다!!

우선 인덱스에 해당하는 숫자를 담을 배열을 선언해 준뒤
 charAt(i) - '0'을 통해 char형의 문자들을 int형으로 변환시켜준다!
Math.min() 함수를 통하여 둘중에 더 인자가 작은 함수를 가져오고
-1 과 0 인 경우를 조건문으로 걸러주고 answer을 string 형으로 다시 변환시켜서 return 해주면 해결된다!!!

숫자 짝꿍.... 강력했다.....!

728x90