원본 : https://programmers.co.kr/learn/courses/30/lessons/17677
코딩테스트 연습 - [1차] 뉴스 클러스터링
뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브
programmers.co.kr
풀이
import java.util.*;
class Solution {
public int solution(String str1, String str2) {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
LinkedList<String> list1 = new LinkedList<>();
LinkedList<String> list2 = new LinkedList<>();
for (int i = 2; i <= str1.length(); i++) {
String str = str1.substring(i - 2, i);
if (str.matches("^[a-z][a-z]$")) {
list1.add(str);
}
}
for (int i = 2; i <= str2.length(); i++) {
String str = str2.substring(i - 2, i);
if (str.matches("^[a-z][a-z]$")) {
list2.add(str);
}
}
if (list1.size() > list2.size()) {
return fn(list2, list1);
} else {
return fn(list1, list2);
}
}
public int fn(LinkedList<String> list1, LinkedList<String> list2) {
if (list1.size() == 0 && list2.size() == 0) {
return 65536;
}
Iterator<String> iter = list1.iterator();
LinkedList<String> compareList = new LinkedList<>(list2);
int cnt = 0;
while (iter.hasNext()) {
String str = iter.next();
if (compareList.contains(str)) {
compareList.remove(str);
cnt++;
}
}
return (int)(65536 * cnt / (double)(list1.size() + list2.size() - cnt));
}
}
수식 최대화 (2020 카카오 인턴십) (0) | 2022.07.05 |
---|---|
거리두기 확인하기 (2021 카카오 채용연계형 인턴십) (0) | 2022.07.04 |
괄호 변환 (2020 KAKAO BLIND RECRUITMENT) (0) | 2022.07.04 |
메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT) (0) | 2022.07.04 |
행렬 테두리 회전하기 (2021 Dev-Matching: 웹 백엔드 개발자(상반기)) (0) | 2022.07.01 |
댓글 영역