코린이의 소소한 공부노트

[LeetCode/Easy] 2287. Rearrange Characters to Make Target String 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2287. Rearrange Characters to Make Target String

무지맘 2023. 4. 30. 22:48

1. Input

1) String s

2) String target

 

2. Output

1) s에서 글자를 골라 재배열한다고 할 때 만들 수 있는 target의 최대 수를 반환

 

3. Constraint

1) 1 <= s.length <= 100

2) 1 <= target.length <= 10

3) starget은 영어 소문자로만 이루어져 있다.

 

4. Example

Input: s = "abcba", target = "abc" -> Output: 1

설명: a2, b2개이지만 c1개이기 때문에 abc1개밖에 만들 수 없다.

 

5. Code

1) 첫 코드(2023/04/30)

class Solution {
    public int rearrangeCharacters(String s, String target) {
        HashMap<Character,Integer> smap = new HashMap<>();
        HashMap<Character,Integer> tmap = new HashMap<>();
        for(int i=0 ; i<s.length() ; i++)
            smap.put(s.charAt(i), smap.getOrDefault(s.charAt(i),0)+1);
        for(int i=0 ; i<target.length() ; i++)
            tmap.put(target.charAt(i), tmap.getOrDefault(target.charAt(i),0)+1);
        int min = Integer.MAX_VALUE;
        for(int i=0 ; i<target.length() ; i++){
            char c = target.charAt(i);
            if(smap.containsKey(c))
                min = Math.min(min, smap.get(c)/tmap.get(c));
            else{
                min = 0; break;
            }
        }
        return min;
    }
}