파이썬 알고리즘 인터뷰 6장_문자열 조작(가장 흔한 단어){미완료}

leeseungsoo0701·2022년 1월 17일
0
post-thumbnail

문자열 조작(4)

아이디어:
1.우선 맨 처음에는 입력 받은 문자열을 소문자로 치환하여 split 후 새로운 리스트 split_p에 넣어준다.

  1. 이 과정에서 각 리스트에 존재하는 것 중에 banned에 해당하는 문자열이 존재 시 pass를 하고 banned에 걸리지 않는 요소들만 추가한다.
  1. 리스트 요소 중 구두점이 있을 시, 구두점을 제거하고 new_lists에 넣어준다.
  1. new_list를 counter를 활용하여 가장 많이 나온 단어를 출력한다.
"""
문제: 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라 대소문자 구분을 하지 않으며, 구두점 또한 무시한다.

입력: paragraph = "Bob hit a ball, the hit BaALL flew far after it was hit."
banned = ["hit"]

출: "ball"

"""

from collections import Counter
def commonWord(paragraph : str, banned: list[str]) -> str:
    
    # 우선 모든 것을 다 소문자로 치환
    lower_p = paragraph.lower()
    
    #해당하는 값들을 넣어주기 위한 리스트 생성
    new_lists = []
    
    #split을 활용한 배열에 각 값을 넣어주기
    split_p = lower_p.split()
    print(split_p)

    print(banned[0])
    
    #for문을 통한 감별 및 해당하는 문자열 new_lists에 append
    for word in split_p:
        if  word == banned[0]:
            pass
        elif '.' in word or ',' in word:
            word = word[:-1]
            new_lists.append(word)
        else:
            new_lists.append(word)
            
	#counter 함수를 이용하여 가장 자주 나온 값 도출
    count_p = Counter(new_lists)
    print(count_p)
    print(count_p.most_common(1)[0][0])

paragraph = "Bob hit a ball, the hit BALL flew far after it was hit."
banned = ["hit"]
commonWord(paragraph,banned)

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

링크:
https://github.com/leeseungsoo0701/python_alogrithm/blob/main/string_change/leetcode/819_most_common_word.py

leetcode 819

profile
한 줄이라도 정확하고 깊게 알아가보자 늦어도 좋다.

0개의 댓글

관련 채용 정보