안녕하세요. 이번 포스팅에서는 Py.CheckiO 의 Home 레벨에 있는 Popular words 문제풀이를 해보겠습니다.
주의:
제 답이 최고/최적화된 답이 아닐 수 있으며, 해결하는 것에만 집중한 답이기 때문에 좀 더 나은 방법이나 해석이 있으시다면 댓글 부탁드립니다.
0. Popular words 문제 내용
Popular words 문제의 내용은 길게 주어진 문자열과 단어들이 나열된 리스트들로 단어가 몇번씩 나타나는지를
찾는 문제입니다.
문자열 List, dictionary 등의 기능을 한번씩 다 사용해야할 것 같네요.

1. Popular words 문제 풀이
주어지는 문자열(text)에는 공백과 띄어쓰기를 포함해서 불필요한 부분들이 있고 단어들마다 쪼개진 list가 아니므로
이 형태를 모두 바꿔줘야 합니다.
그럼 순서대로 주어진 text에 변화를 줍니다.
1. 줄넘김을 공백으로 바꾸기
text.replace('\n', ' ')
2. 모두 소문자로 바꾸기
text.replace('\n', ' ').lower()
3. 공백을 기준으로 단어 구분 하기(공백 기준으로 자르기)
(text.replace('\n', ' ').lower()).split(' ')
위의 세단계를 거치게 되면 기존에 주어진 text에서 필요없는 부분이 제거되고, 단어들 간에 구분이된 list가 됩니다.
빈도수를 찾아야 할 단어들(words)의 list의 원소 갯수 만큼 반복문을 돌리면서
반환을 위한 임시 dictionary(tmp_dict)에 대입합니다. dictionary 이기 때문에 인덱스 말고 키값을 사용해야 하므로
words의 단어 자체를 인덱스 처럼 넣어줍니다.
그리고 tmp_dict를 return 하면 문제는 해결 됩니다.

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
댓글