[리트코드 819] Most Common Word
금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라.
대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시한다.
Q1 팬린드롬과 같이 먼저 문자열 필터링을 해야한다.
re 라이브러리를 사용하여 문자열만 필터링 한 후, 대소문자 구분을 하지않기 위해 소문자로 변경하여 공백을 기준으로 리스트화 한다.
import re
def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
paragraph = re.sub('[^a-zA-Z]', ' ', paragraph).lower().split()
여기서 금지된 단어를 제외 해야한다.
paragraph = [string for string in paragraph if not string in banned]
그 후 count() 메소드를 이용하여 paragraph 리스트에서 해당 단어의 출현 횟수를 세고 그 값을 counts라는 리스트에 같은 인덱스로 넣어준다.
counts = []
for string in paragraph:
counts.append(paragraph.count(string))
마지막으로 그 중 가장 높은 값의 인덱스를 찾아 paragraph[인덱스]로 리턴해준다.
return paragraph[counts.index(max(counts))]
정리하면 다음과 같다.
import re
def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
paragraph = re.sub('[^a-zA-Z]', ' ', paragraph).lower().split()
paragraph = [string for string in paragraph if not string in banned]
counts = []
for string in paragraph:
counts.append(paragraph.count(string))
return paragraph[counts.index(max(counts))]
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[Q7] 두 수의 합 (0) | 2022.12.17 |
---|---|
[Q6] 가장 긴 팰린드롬 부분 문자열 (0) | 2022.12.01 |
[Q3] 로그파일 재정렬 (0) | 2022.12.01 |
[Q2] 문자열 뒤집기 (0) | 2022.11.30 |
[Q1] 유효한 팰린드롬 (0) | 2022.11.30 |