[TIL] LeetCode#819

minhyuk_ko·2022년 1월 22일
0

TIL

목록 보기
1/7

819. Most Common Word

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

입력

paragraph = "Bob hit a ball, the hit BALL flew far after it was hit.", banned = ["hit"]

출력

"ball"

풀이

import re, collections
class Solution:
    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]
        res = collections.Counter(words)
        return res.most_common(1)[0][0]

로직

정규식을 사용하여 구두점을 제거하고, 리스트 컴프리헨션으로 금지단어를 제외한 리스트를 만들어 collections의 Counter 객체를 사용하고 객체에 지원되는 most_common메서드를 사용하여 빈도가 가장 높은 값을 반환한다.

느낀점

Python 3.7 + 버전만 사용해서 collections 라이브러리의 존재를 아예 몰랐지만 이번 기회를 통해 사용해볼 수 있었다. 사용하기도 쉽고 많은 곳에 사용할 수 있을 것 같다는 생각이 들어 최대한 잊지 않도록 많이 활용해보려고 한다.

profile
BE Developer

0개의 댓글