[Q. 04] 가장 흔한 단어

2023. 3. 15. 22:03·코딩테스트/알고리즘
금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지않으며, 구두점(마침표, 쉼표 등) 또한 무시한다.

 

먼저 구두점을 제거하고, 소문자로 변경한다. 1에서 사용했던 방법 그대로 사용한다.

paragraph = re.sub(r'[^a-zA-Z]', ' ', paragraph).lower().split()

 

그 다음, 밴에 있는 단어를 제외한 리스트를 새로 작성한다.

paragraph = [s for s in paragraph if s not in banned]

 

파이썬의 딕셔너리를 이용하여 paragraph 리스트에 나온 단어의 갯수를 카운팅한다.

par_dict = {}

for par in paragraph:
    if par_dict.get(par) == None:
        par_dict[par] = 0

    par_dict[par] += 1

 

딕셔너리의 items 메서드를 사용하면, (key, value) 쌍의 리스트로 반환하여준다. 이를 리스트로 변한한 뒤, value 값을 key로 max 값을 가져온다.

paragraph = list(par_dict.items())
        
return max(paragraph, key=lambda x:x[1])[0]

 

전체 코드는 다음과 같다.

import re

class Solution:
    def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
        paragraph = re.sub(r'[^a-zA-Z]', ' ', paragraph).lower().split()

        paragraph = [s for s in paragraph if s not in banned]

        par_dict = {}

        for par in paragraph:
            if par_dict.get(par) == None:
                par_dict[par] = 0

            par_dict[par] += 1

        paragraph = list(par_dict.items())
        
        return max(paragraph, key=lambda x:x[1])[0]
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 알고리즘' 카테고리의 다른 글

[Q. 06] 가장 긴 팰린드롬 부분 문자열  (0) 2023.03.16
[Q. 05] 그룹 애너그램  (0) 2023.03.16
[Q. 03] 로그 파일 재정렬  (0) 2023.03.15
[Q. 02] 문자열 뒤집기  (0) 2023.03.15
[Q. 01] 유효한 팰린드롬  (0) 2023.03.15
'코딩테스트/알고리즘' 카테고리의 다른 글
  • [Q. 06] 가장 긴 팰린드롬 부분 문자열
  • [Q. 05] 그룹 애너그램
  • [Q. 03] 로그 파일 재정렬
  • [Q. 02] 문자열 뒤집기
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    클러스터
    티스토리챌린지
    인스타그램
    chat GPT
    REST API
    리액트
    백준
    spring boot
    클론코딩
    Entity
    쿠버네티스
    OpenAI API
    오블완
    Java
    mapstruct
    스프링부트
    react
    MSA
    예외
    스프링 부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
[Q. 04] 가장 흔한 단어
상단으로

티스토리툴바