https://leetcode.com/problems/most-common-word/
Most Common Word - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이 과정
문자열에서 금지되지 않은 단어 중에, 가장 많이 나온 단어를 출력하는 문제이다.
isalpha(), islower() 등의 파이썬 내장 함수로 알파벳, 소문자 처리를 문제 조건에 맞게 처리해준 후, collections 모듈의 Counter 객체를 사용하여 문자열 안에 나온 단어의 개수를 세주었다.
Counter 사용법
a = [1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]이라고 하면,
b = collections.Counter(a) -> Counter({3: 5, 2: 4, 1: 2})
위와 같이 각 원소가 a에서 몇번 나왔는지 카운터 객체로 반환받을 수 있다.
c = b.most_common() -> [(3, 5), (2, 4), (1, 2)]
most_common() 함수를 통해 튜플을 포함한 리스트의 형태로 반환받을 수 있으므로 c[0][0]으로 접근해 a에서 가장 많이 나온 원소가 무엇인지 파악할 수 있다.
소스 코드
class Solution:
def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
real_para = ""
for letter in paragraph:
if not letter.isalpha():
letter = ' '
else:
letter = letter.lower()
real_para += letter
paragraph = real_para.split()
paragraph = collections.Counter(paragraph)
for word in paragraph.most_common():
if word[0] not in banned:
return word[0]
'알고리즘 문제 풀이 > 리트코드' 카테고리의 다른 글
LeetCode - 15. 3Sum [Python] (0) | 2022.07.22 |
---|---|
LeetCode - 5. Longest Palindromic Substring [Python] (0) | 2022.07.21 |
LeetCode - 937. Reorder Data in Log Files [Python] (0) | 2022.07.21 |
LeetCode - 344. Reverse String [Python] (0) | 2022.07.19 |
LeetCode - 125. Valid Palindrome [Python] (0) | 2022.07.19 |