https://www.welcomekakao.com/learn/courses/30/lessons/17677
#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 |