https://www.welcomekakao.com/learn/courses/30/lessons/17677
코딩테스트 연습 - [1차] 뉴스 클러스터링
뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브��
www.welcomekakao.com
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
#include <vector>
using namespace std;
multiset <string> preset(string s) {
multiset <string> temp2;
for (int i = 0; i < s.size()-1; i++)
{
char c = tolower(s[i]);
char c2 = tolower(s[i + 1]);
string temp = "";
if (c >= 'a' && c <= 'z' && c2 >= 'a' && c2 <= 'z') {
temp += c;
temp += c2;
temp2.insert(temp);
}
}
return temp2;
}
int solution(string str1, string str2) {
int answer = 65536;
multiset<string> s1, s2;
s1 = preset(str1);
s2 = preset(str2);
if (s1.size() == 0 && s2.size() == 0) {
return answer;
}
int sunion = s1.size();
int inter = 0;
for (auto it = s2.begin(); it != s2.end(); it++)
{
auto it2 = find(s1.begin(), s1.end(), *it);
if (it2 != s1.end()) {
s1.erase(it2);
inter++;
}
else {
sunion++;
}
}
answer = (int)((inter * 65536) / sunion);
return answer;
}
'개발자 > algorithm' 카테고리의 다른 글
2019 카카오 코딩테스트 3번 : 후보키 (c++) (0) | 2020.09.02 |
---|---|
2019 카카오 코딩테스트 5번 : 길 찾기 게임 (c++) (0) | 2020.09.02 |
2018 카카오 코딩테스트 3번 : 캐시 (c++) (0) | 2020.09.01 |
2018 카카오 코딩테스트 6번 : 프렌즈 블록 (c++) (0) | 2020.09.01 |
백준 1615번 : 교차개수세기 (c++) (0) | 2020.08.29 |