•
문제 설명 : 제공된 문자열의 리스트 중, 허용된 문자열(allowed)로 구성된 문자로만 사용된 문자열 요소는 몇개인지 반환하는 문제
•
풀이 방법
◦
각 word를 검사하면서, allowed를 구성하는 문자로만 사용되었는지 확인
◦
allowed 되지 않은 문자열을 사용했다면, 해당 문자열에 대한 이후 탐색은 중단
◦
allowed 된 문자로만 구성되었다면 result에 누적
▪
이 부분은 for-else 문으로도 해결이 가능하지만, 이번 문제는 flag 를 사용해봤다.
▪
보통 for-else 문은 가독성 및 휴먼 에러를 이유로, 적극적인 사용은 권장하지 않기 때문이다.
•
시간복잡도 :
•
성공 코드
# 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
복사