[LeetCode] Rearrange Characters to Make Target String

아르당·2026년 8월 25일

LeetCode

목록 보기
487/579
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

인덱스가 0부터 시작하는 2개의 문자열 s와 target이 주어진다. s에서 어떤 문자를 가져와 재배열해서 새로운 문자열을 만들 수 있다.
문자열 s의 문자를 사용하여 재배치해서 만들 수 있는 target의 최대 개수를 반환해라.

Example

#1
Input: s = "ilovecodingonleetcode", target = "code"
Output: 2

#2
Input: s = "abcba", target = "abc"
Output: 1

#3
Input: s = "abbaccaddaeea", target = "aaaaa"
Output: 1

Constraints

  • 1 <= s.length <= 100
  • 1 <= target.length <= 10
  • s와 target은 영어 소문자로 구성된다.

Solved

class Solution {
    public int rearrangeCharacters(String s, String target) {
        int[] sArr = new int[26];
        int[] tArr = new int[26];

        for(char c : s.toCharArray()){
            sArr[c - 'a']++;
        }

        for(char c : target.toCharArray()){
            tArr[c - 'a']++;
        }

        int result = Integer.MAX_VALUE;

        for(int i = 0; i < 26; i++){
            if(tArr[i] > 0){
                result = Math.min(result, sArr[i] / tArr[i]);
            }
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글