Tech for good

[Leetcode/Sliding Window] 1876. Substrings of Size Three with Distinct Characters 본문

IT/Computer Science

[Leetcode/Sliding Window] 1876. Substrings of Size Three with Distinct Characters

Diana Kang 2025. 3. 3. 22:52

class Solution:
    def countGoodSubstrings(s: str) -> int:
        count = 0
        for i in range(len(s) - 2):  # 길이가 3인 모든 부분 문자열을 검사
            substring = s[i:i+3]  # 길이 3의 부분 문자열 추출
            if len(set(substring)) == 3:  # 중복 문자가 없는지 확인
                count += 1
        return count
  • set() => 중복을 허용하지 않는 집합(set) 자료형을 생성하는 함수
    • 중복 제거: 리스트나 문자열 등의 중복된 요소를 자동으로 제거.
    • 순서 없음: 요소의 순서가 보장되지 않음.
    • 빠른 멤버십 테스트 (in 연산): 리스트보다 빠르게 특정 요소가 존재하는지 확인할 수 있음.
  • for in range() => 이상 ~ 미만
# 리스트에서 중복 제거
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # {1, 2, 3, 4, 5}

# 문자열에서 중복 제거
text = "banana"
unique_chars = set(text)
print(unique_chars)  # {'b', 'a', 'n'}