문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
인덱스가 0부터 시작하는 2개의 문자열 s와 target이 주어진다. s에서 어떤 문자를 가져와 재배열해서 새로운 문자열을 만들 수 있다.
문자열 s의 문자를 사용하여 재배치해서 만들 수 있는 target의 최대 개수를 반환해라.
#1
Input: s = "ilovecodingonleetcode", target = "code"
Output: 2
#2
Input: s = "abcba", target = "abc"
Output: 1
#3
Input: s = "abbaccaddaeea", target = "aaaaa"
Output: 1
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;
}
}