LeetCode 819번 <가장 흔한 단어>

 

문제

금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등)또한 무시한다.


풀이 1) 리스트 컴프리헨션, Counter 객체 사용

입력값에는 대소문자가 섞여 있으며 쉼표 등 구두점이 존재한다. 따라서 데이터 클렌징이라 부르는 입력값에 대한 전처리 작업이 필요하다.

def mostCommonWord(self, paragraph: str, banned : List[str]) -> str:
    #단어가 아닌 문자 무시 
    words = [word for word in re.sub(r'\w','',paragraph)
            .lower().split() if word not in banned]

    counts = collections.Counter(words)

    #가장 흔하게 등장하는 첫 번째 인덱스 리턴
    return counts.most_common(1)[0][0]