728x90
https://programmers.co.kr/learn/courses/30/lessons/17677
코딩테스트 연습 - [1차] 뉴스 클러스터링
뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브
programmers.co.kr
// 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import java.util.*;
class Solution {
static final int GIVENNUM = 65536;
public int solution(String str1, String str2) {
List<String> myList = new ArrayList<>();
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
// str1을 규칙에 맞게 처리해준다.
for(int i=0; i<(str1.length()-1); ++i) {
char c1 = str1.charAt(i);
char c2 = str1.charAt(i+1);
// 조건에 부합하는 문자열을 list에 담는다.
if( (c1>='a' && c1<='z') && (c2>='a' && c2<='z') ) myList.add( (c1+""+c2) );
}
// 교집합 부분
int intersectionNum = 0;
// 합집합 부분 : 어차피 합집합이므로 최소 myList크기와 같거나 크다.
int unionNum = myList.size();
for(int i=0; i<(str2.length()-1); ++i) {
char c1 = str2.charAt(i);
char c2 = str2.charAt(i+1);
if( (c1>='a' && c1<='z') && (c2>='a' && c2<='z') ) {
String temp = c1 + "" + c2;
if(myList.contains(temp)) { // 교집합 처리부분
++intersectionNum;
myList.remove(temp);
}
else ++unionNum; // 합집합 처리부분
}
}
if( (intersectionNum == 0) && (unionNum == 0) ) return GIVENNUM;
return (int)((intersectionNum/(double)unionNum) * GIVENNUM);
}
}
|
cs |
반응형
'CS > 알고리즘_KAKAO BLIND RECRUITMENT' 카테고리의 다른 글
2018 KAKAO BLIND RECRUITMENT : [1차] 다트 게임 (0) | 2021.10.29 |
---|---|
2019 KAKAO BLIND RECRUITMENT : 매칭 점수 (0) | 2021.10.28 |
2021 KAKAO BLIND RECRUITMENT : 매출 하락 최소화 (0) | 2021.10.26 |
2021 KAKAO BLIND RECRUITMENT : 순위 검색(비트마스크 & 집합) (0) | 2021.10.25 |
2020 KAKAO BLIND RECRUITMENT : 블록 이동하기 😰 (문제 미침) (0) | 2021.10.21 |