
😎풀이
s 순회
1-1. 문자 빈도 기록
target 순회
2-1. 문자 빈도 기록
target 순회
3-1. s에서의 빈도 확인
3-2. target에서의 빈도 확인
3-3. s빈도 / target빈도 = 만들 수 있는 문자 수
3-4. target의 요소 중 만들 수 있는 문자 수가 가장 작은 문자만큼 target을 만들어낼 수 있음
- 만들 수 있는
target 수 반환
function rearrangeCharacters(s: string, target: string): number {
const sFrequent = new Map()
const targetFrequent = new Map()
for(const char of s) {
sFrequent.set(char, (sFrequent.get(char) ?? 0) + 1)
}
for(const char of target) {
targetFrequent.set(char, (targetFrequent.get(char) ?? 0) + 1)
}
let minChar = Infinity
for(const char of target) {
const curFreq = sFrequent.get(char) ?? 0
const targetFreq = targetFrequent.get(char) ?? 0
minChar = Math.min(minChar, Math.floor(curFreq / targetFreq))
}
return minChar
};