본문 바로가기
파이썬 알고리즘 코딩

가장 흔한 단어 문제

by 볼록티 2021. 3. 28.
728x90
반응형

문제는 문자열에 단어 중 금지된 단어를 제외하고 가장 빈도가 높은 단어를 출력하라.! 

 

 

 

paragraph 을 우선 전처리를 한다. 문자를 제외한 나머지는 공백으로 메꾸는 유용한 코드 한 줄.

words = [word for word in re.sub('[^\w]',' ',paragraph).lower().split()]

 

그리고 banned 금지된 단어에 포함이 되면 안되므로 아래의 코드를 실행한다. 위의 코드의 끝자락에 if 문을 추가해주는 것을 따로 떼어서 적은 것 뿐이다.

words2 = [word for word in words if word not in banned]

그리고 collections 모듈의 Counter 함수를 사용한다. 포함된 원소들의 빈도를 알려주는 함수이다.

 

Counter 안에 들어간 자료구조 속 원소들의 개수를 딕셔너리 형태로 빈도를 알려준다. 여기서 추가적으로 most_common 함수를 사용하면 빈도가 가장 많은 순으로 출력하여 준다. 그중에 첫번째를 뽑으면 문제의 정답.!

from collections import Counter

Counter(words2).most_common(1)[0][0]

 

빈도 분석 해야한다. 그러면 바로 Counter 로 편하게 ~

 

 

ref) 파이썬 알고리즘 인터뷰

ref) leetcode.com/problems/most-common-word/submissions/

728x90
반응형

댓글