2022년 06월 28일 화요일 - 오늘 좀 힘드네용


오늘 올려볼 문제는 1647번 Minimum Deletions to Make Character Frequencies Unique 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘 회사에서 leetcode 들어가는 걸 까먹었다....


입력


사진에서도 볼 수 있듯이 String 1개가 입력으로 들어온다.



풀이 및 코드


String을 구성하는 원소들 중 반복하는 개수가 겹치지 않게끔 원소를 지우는데 최소로 지워서 만족하게끔 할 수 있는 개수를 구하여 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

일단 String의 원소들 개수를 세고 겹치는게 안생길 때까지 그냥 다 지워줬다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int minDeletions(String s) {
        int[] arr = new int[26];
        HashMap<Integer, Boolean> map = new HashMap<>();
        int result = 0;
        
        for(char c : s.toCharArray()) arr[c - 'a']++;
        
        for(int num : arr)
        {
            if(num == 0) continue;
            
            if(map.containsKey(num))
            {
                while(num > 0 && map.containsKey(num)) 
                {
                    num--;
                    result++;
                }
            }
            map.put(num, true);
        }
        
        return result;
    }
}




제출 화면

leetcode 문제 맞았습니다


오늘 회사에서도 문제를 안 본 것 치고는 문제를 꽤 빨리 풀었다.

내일도 이렇게 잘 풀 수 있었으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts