inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

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

    lhs's avatar
    lhs
    Dec 16, 2024
    [프로그래머스] 숫자 짝꿍(131128)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/131128
     

    1. 문제 풀이 아이디어

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

    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. 정리

    • 문자열 X와 Y에서 각 숫자의 등장 횟수를 세어 num1과 num2 배열에 저장한다.
    • 두 문자열에서 등장 횟수의 최소값을 result 배열에 저장한다.
    • result 배열을 역순으로 탐색하며 숫자를 결과 문자열에 추가한다.
      • 숫자가 없으면 1을 반환한다.
      • 결과가 0으로만 이루어진 경우 0을 반환한다.
    Share article
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리

    LHS's Study Space

    RSS·Powered by Inblog