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
- collections.Counter로 각 알파벳 구성에 대한 딕셔너리 생성
- 딕셔너리에서 val로 둔 count.values()의 값이 짝수라면, x에 2를 더함
- 반대로 val 값이 홀수라면, x에 1을 더함
Runtime : 135ms (62.95%)
Memory : 18.82MB (33.77%)
728x90
'코딩 공부 > Leetcode' 카테고리의 다른 글
[Python] 1769. Minimum Number of Operations to Move All Balls to Each Box (0) | 2025.01.15 |
---|---|
[Python] 2657. Find the Prefix Common Array of Two Arrays (0) | 2025.01.14 |
[Python] 1408. String Matching in an Array (0) | 2025.01.13 |
[Python] 2116. Check if a Parentheses String Can Be Valid (0) | 2025.01.12 |
[Python] 876. Middle of the Linked List (0) | 2025.01.12 |