Leetcode 819. Most Commmon Word
by EunHye Jung
819. Most Commmon Word
한 단락과 금지어 리스트가 주어질때, 금지어에 포함되지 않은 가장 빈도수가 많은 단어를 찾을것.
금지어가 아닌건 적어도 하나있고, 답은 유일함!
금지어는 소문자로 주어지며 구두점이 없음. 단락에는 대소문자 다쓰임. 답은 소문자임
Note:
1 <= paragraph.length <= 1000.
1 <= banned.length <= 100.
1 <= banned[i].length <= 10.
The answer is unique, and written in lowercase (even if its occurrences in paragraph may have uppercase symbols, and even if it is a proper noun.)
paragraph only consists of letters, spaces, or the punctuation symbols !?’,;.
Different words in paragraph are always separated by a space.
There are no hyphens or hyphenated words.
Words only consist of letters, never apostrophes or other punctuation symbols.
풀이
- 입력값은 단락과 금지어리스트, 출력은 금지어가 아닌 가장 빈도수가 많은 단어
- 신경써야할 부분은
1) 단락은 대소문자를 다포함하지만, 금지어는 소문자로만 주어진다는것
2) 와 같은 구두점들이 단락에 포함된다는 -
해결 방법은
1) 단락을 소문자로 바꿔주고 공백을 기준으로 단락에서 단어들을 뽑아낸다 -> toLowerCase(), split() 메서드 이용
2) 단어들의 빈도수를 체크하기 위해 Map<String,Intger>를 이용했다.
3) 단락에 있는 단어를 하나씩 금지어인지아닌지 확인해야하는데, 그 전에 정규표현식을 이용해서 소문자가 아닌것들은 다 제거해준다. -> replaceAll() 메소드, 정규표현식[^a-z]
이용.
4) 금지어가 아닌것들은 map에 해당 정보를 담아준 다음, 최대 빈도를 갖는 단어를 찾아내었다.
알게된것
Subscribe via RSS