코딩 공부/Leetcode

[Python] 3223. Minimum Length of String After Operations

일하는 공학도 2025. 1. 14. 08:35
728x90

난이도 : Medium

 

s라는 문자열이 있고, 특정 알파벳을 2개씩 지워나가는데, 더이상 지울 수 없는 한계치가 올 때 s의 길이를 구하는 문제

즉, s 내부에서 특정 알파벳이 2개 이하면 지울 수 없다.

 

s 내부에 있는 알파벳들은 1 아니면 2의 값을 가져야 한다는 의미.

3개가 있으면 1개로 줄여지고, 2개에서 더 줄일 수 없다.

class Solution:
    def minimumLength(self, s: str) -> int:
        count = collections.Counter(s)
        x = 0
        for i, val in count.items():
            if val % 2 == 0:
                x += 2
            else:
                x += 1
        return x
  1. collections.Counter로 각 알파벳 구성에 대한 딕셔너리 생성
  2. 딕셔너리에서 val로 둔 count.values()의 값이 짝수라면, x에 2를 더함
  3. 반대로 val 값이 홀수라면, x에 1을 더함

Runtime : 135ms (62.95%)

Memory : 18.82MB (33.77%)

728x90