[leetcode / 819] Most Common Word


날짜: 2021년 8월 23일
카테고리: 문자열
태그: Easy, 819, 파이썬

leetcode 819 - Most Common Word

입출력 예시

예제 입력예제 출력
paragraph = “Bob hit a ball, the hit BALL flew far after it was hit.”“ball”
banned = [“hit”] 

코드

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]
        print(words)
                
        counts = collections.Counter(words)
        
        return counts.most_common(1)[0][0]
파이썬 알고리즘 인터뷰 6-4

풀이 과정

문자열 전처리를 위해 정규식을 활용하여 특수문자를 제거하고 띄어쓰기로 문자간 구분을 하고, banned 리스트에 있는 문자열을 제외

collection 라이브러리의 Counter 클래스를 활용하여 단어별 사용 횟수를 체크
가장 흔한 단어를 most_common(1) 함수를 사용하여 추출

[['ball',2]] 형태로 출력된 값 중 가장 흔한 단어를 출력하기 위해 첫 번째 인덱스 키를 추출하여 리턴하기 위해
return counts.most_common(1)[0][0] 형태로 리턴

반성

  • 정규 표현식 형태에 좀 더 익숙해 져서 자유롭게 활용할 수 있을 정도로 연습해야 할 필요가 있다.
  • 파이썬 표준 라이브러리들 중 자주 활용할 수 있는 라이브러리와 모듈들에 익숙해 질 필요가 있다.
  • 가장 많이 사용된 단어를 찾기위해 collection 라이브러리의 Counter 클래스의 most_common(n)함수를 기억해두자.




© 2021. by hminkim