[문자열] 리트코드 819: Most Common Word

LeeJE20·2021년 9월 23일
0

파이썬 문제풀이

목록 보기
24/26

사용 언어: python 3.9.5

❓ Problem

문제 설명

https://leetcode.com/problems/most-common-word/

banned가 아닌 가장 흔한 단어 찾기

난이도

Easy

🚩 Solution

시도 01)

1. 접근법

1. 정규표현식으로 문자, 숫자만 남기기

2. 카운터 모듈로 개수 세기

3. banned에 없는 단어로 결과 도출

2. 코드

import re
from collections import Counter

class Solution:
    def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
        # 문자, 숫자만 골라내기
        # 반환값: 리스트
        p = re.compile('[\w]+')
        paragraph = p.findall(paragraph.lower())

        # 개수 헤아리기
        count = Counter(paragraph)
        common = count.most_common(n = len(count))

        # 금지된 단어에 있는 거면 다음 최다빈도 단어 선택
        i = 0
        while(common[i][0] in banned):
            i += 1

        # 최다 빈도 
        return common[i][0]

3. 시간복잡도

count.most_common이 O(nlogn)이므로

O(nlogn)O(nlogn)

4. 결과

성공: 1회 시도

메모리:  14.2 MB, less than 73.01%

시간:   36 ms, faster than 73.85%

5. 소요 시간

시작: 21.09.23 10:31

끝: 21.09.23 10:45

📕 피드백

1. 검색한 내용

https://wikidocs.net/4308

파이썬 정규표현식 사용법

파이썬 Counter 모듈 사용법 (개인 정리본)

2. 실수

3. 발전 방향 (개선/추가사항)

정규표현식 부분을

paragraph = re.findall('[\w]+', paragraph.lower())

이렇게 해도 된다.

0개의 댓글