숫자 짝꿍

Seongjin Jo·2023년 2월 15일
0

프로그래머스 LV1

목록 보기
12/31

문제

풀이

class Solution {
    public String solution(String x, String y) {
        StringBuilder sb = new StringBuilder();
        int p1 = 0, p2 = 0;
        char[] arr = x.toCharArray();
        char[] brr = y.toCharArray();
        Arrays.sort(arr);
        Arrays.sort(brr);

        while (p1 < x.length() && p2 < y.length()) {
            if (arr[p1] == brr[p2]) {
                sb.append(arr[p1]);
                p1++;
                p2++;
            } 
            else if (arr[p1] > brr[p2]) p2++;
            else if (arr[p1] < brr[p2]) p1++;
        }
                
        String answer = sb.reverse().toString();
        
        if(answer.length()==0) return "-1";
        else if(answer.startsWith("0")) return "0";
        return answer;
    }
}

이 문제는 두 문자열 X,Y를 비교해서 정답을 구하는 문제이다. 투포인터를 이용해서 두 배열을 비교해 StringBuilder에 담아서 값을 출력했다. 처음에 그냥 String에 담아서 값을 출력하니까 런타임에러가 떠서 당황했다. x,y는 상당히 큰 정수일 수 있으므로, StringBuilder를 사용하지 않고 그냥 String 끼리 합쳐서 문자열을 만들면 시간 초과가 발생한다.

0개의 댓글