[Programmers / Level1]131128. 숫자 짝꿍(Java)

이하얀·2024년 9월 6일
0

🕊️ 프로그래머스

목록 보기
41/62
post-thumbnail

💡 Info




입출력 조건




입출력 예시




문제 이해


  • x와 y에서 공통으로 나타나는 숫자를 뽑고, 그 조합을 따져서 가장 큰 수를 만드는 문제


알고리즘 및 최종 풀이


풀이 시간 : 45분

<시간 초과로 인해 String이 아닌 StringBuilder 사용>

  • x와 y를 숫자별로 정리하기
  • 9(길이)부터 역순으로 보면서
    • 겹치는 숫자는 append
  • 짝꿍이 없는 경우 -> -1 반환
  • 짝꿍이 0으로만 구성 -> 0 반환
import java.util.*;

class Solution {
    public String solution(String X, String Y) {
        StringBuilder stringBuilder = new StringBuilder();
 
        int[] xArray = new int[10];
        for(String x : X.split("")){
            xArray[Integer.parseInt(x)]++;
        }
        
        int[] yArray = new int[10];
        for(String y : Y.split("")) {
            yArray[Integer.parseInt(y)]++;
        }
        
        for(int i=9; i>=0; i--){
            while(xArray[i] > 0 && yArray[i] > 0){
                stringBuilder.append(i);
                xArray[i]--;
                yArray[i]--;
            }
        }
        if("".equals(stringBuilder.toString())){
            return "-1";
        }
        
        if("0".equals(stringBuilder.toString().substring(0,1))) {
            return "0";
        }
        
        return stringBuilder.toString();
    }
}


결과


업로드중..

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글