본문 바로가기
알고리즘/Array

가장 흔한 단어

by e-pd 2023. 9. 29.

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

 

LeetCode - The World's Leading Online Programming Learning Platform

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

class Solution {
    public String mostCommonWord(String paragraph, String[] banned) {
        if (paragraph == null || paragraph.isBlank()) {
            return null;
        }
        // replace
              String replaced = paragraph.replaceAll("[^A-Za-z]+", " ");
        List<String> bannedList = Arrays.asList(banned);

        return Arrays.stream(replaced.split(" "))
                .map(String::toLowerCase)
                .filter(Predicate.not(bannedList::contains))
                .filter(Predicate.not(String::isBlank))
                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
                .entrySet()
                .stream()
                .max(Map.Entry.comparingByValue())
                .map(Map.Entry::getKey)
                .orElse(null);
    }
}

 

 

혹은 정규식: (\\W+) 사용.

getOrDefault로 전개할 수도 있음.

'알고리즘 > Array' 카테고리의 다른 글

Longest Palindrome Substring  (0) 2023.10.01
그룹 애너그램  (0) 2023.09.29
로그 파일 정렬하기  (0) 2023.09.28
부족한 금액 계산하기  (0) 2021.08.09
일곱 난쟁이  (0) 2021.07.14