Search

Count the Number of Consistent Strings

문제 설명 : 제공된 문자열의 리스트 중, 허용된 문자열(allowed)로 구성된 문자로만 사용된 문자열 요소는 몇개인지 반환하는 문제
풀이 방법
각 word를 검사하면서, allowed를 구성하는 문자로만 사용되었는지 확인
allowed 되지 않은 문자열을 사용했다면, 해당 문자열에 대한 이후 탐색은 중단
allowed 된 문자로만 구성되었다면 result에 누적
이 부분은 for-else 문으로도 해결이 가능하지만, 이번 문제는 flag 를 사용해봤다.
보통 for-else 문은 가독성 및 휴먼 에러를 이유로, 적극적인 사용은 권장하지 않기 때문이다.
시간복잡도 : O(N3)O(N^3)
성공 코드
# O(N * N) = O(N^2) class Solution: def countConsistentStrings(self, allowed: str, words: List[str]) -> int: result = 0 # set 작업은 1번만 진행 # set(iterator)는 O(N)이기 때문에, 반복문 내부가 아닌 밖에서 해야한다. allowed_chars = set(allowed) # 전체 단어를 순회하면서 allowed에 포함된 문자만 있는지 확인 -> O(N) for word in words: result += 1 if set(word) - allowed_chars == set() else 0 return result
Python
복사