프로그래머스 Lv.1
🔥 숫자 짝꿍 🔥
두 정수 X,Y의 임의의 자리에서 공통으로 나타나는 정수 k들을 이용하여 만들 수 있는 가장 큰 수를 정수를 두 수의 짝꿍이라고 한다. 짝꿍이없으면 짝꿍은 -1이고 짝꿍이 0으로만 구성되어있다면 짝꿍은 0이다.
두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해보자.
X | Y | result |
---|---|---|
100 | 2345 | -1 |
100 | 203045 | 0 |
100 | 123450 | 10 |
12321 | 42531 | 321 |
5525 | 1255 | 552 |
결론부터 말하자면 못 풀었다. 꽤 오래 붙잡고 있었는데 방향을 아예못잡아서 다른분들의 풀이를 참고했다.
class Solution {
public String solution(String X, String Y) {
1️⃣
int[] cntX = new int[10];
int[] cntY = new int[10];
2️⃣
for (String tmpX : X.split("")) cntX[Integer.parseInt(tmpX)]++;
for (String tmpY : Y.split("")) cntY[Integer.parseInt(tmpY)]++;
StringBuilder sb = new StringBuilder();
3️⃣
for(int i=9;i>=0;i--){
while(cntX[i] >0 && cntY[i] >0){
sb.append(i);
cntX[i]--;
cntY[i]--;
}
}
String answer = "";
4️⃣
if("".equals(sb.toString())){
answer = "-1";
}else if("0".equals(sb.toString().substring(0,1))){
answer = "0";
}else {
answer = sb.toString();
}
return answer;
}
}