[프로그래머스] 숫자 짝꿍(131128)

lhs's avatar
Dec 16, 2024
[프로그래머스] 숫자 짝꿍(131128)
 

1. 문제 풀이 아이디어

  • 문자열 XY에서 각 숫자의 등장 횟수를 세어 배열에 저장한 후, 등장 횟수의 최소값을 따로 저장해 문제를 해결한다.

2. 나의 정답 코드

class Solution { public String solution(String X, String Y) { StringBuilder stringBuilder = new StringBuilder(); int[] num1 = new int[10]; int[] num2 = new int[10]; int[] result = new int[10]; for (char c : X.toCharArray()) { num1[c - '0']++; } for (char c : Y.toCharArray()) { num2[c - '0']++; } for (int i = 0; i < 10; i++) { result[i] = Math.min(num1[i], num2[i]); } boolean chk = false; for (int i = 9; i >= 0; i--) { if (result[i] > 0) chk = true; if (i == 0 && stringBuilder.length()==0) { stringBuilder.append(0); break; } for (int j = 0; j < result[i]; j++) { stringBuilder.append(i); } } return chk ? stringBuilder.toString() : "-1"; } }

3. 정리

  • 문자열 XY에서 각 숫자의 등장 횟수를 세어 num1num2 배열에 저장한다.
  • 두 문자열에서 등장 횟수의 최소값을 result 배열에 저장한다.
  • result 배열을 역순으로 탐색하며 숫자를 결과 문자열에 추가한다.
    • 숫자가 없으면 1을 반환한다.
    • 결과가 0으로만 이루어진 경우 0을 반환한다.
Share article

LHS's Study Space