[LeetCode] 2287. Rearrange Characters to Make Target String

Chobby·1일 전
1

LeetCode

목록 보기
705/713

😎풀이

  1. s 순회
    1-1. 문자 빈도 기록
  2. target 순회
    2-1. 문자 빈도 기록
  3. target 순회
    3-1. s에서의 빈도 확인
    3-2. target에서의 빈도 확인
    3-3. s빈도 / target빈도 = 만들 수 있는 문자 수
    3-4. target의 요소 중 만들 수 있는 문자 수가 가장 작은 문자만큼 target을 만들어낼 수 있음
  4. 만들 수 있는 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글