#include <iostream> #include <string> #include <vector> using namespace std; int solution(string str1, string str2) { int overlapCnt = 0; int visited[1000] = {0}; vector<string> set1; vector<string> set2; for(int i = 0; i <= str1.size()-2; i++) { if((('A' <= str1[i] && str1[i] <= 'Z') || ('a' <= str1[i] && str1[i] <= 'z')) && (('A' <= str1[i+1] && str1[i+1] <= 'Z') || ('a' <= str1[i+1] && str1[i+1] <= 'z'))) { string temp; temp += tolower(str1[i]); temp += tolower(str1[i+1]); set1.push_back(temp); } } for(int i = 0; i <= str2.size()-2; i++) { if((('A' <= str2[i] && str2[i] <= 'Z') || ('a' <= str2[i] && str2[i] <= 'z')) && (('A' <= str2[i+1] && str2[i+1] <= 'Z') || ('a' <= str2[i+1] && str2[i+1] <= 'z'))) { string temp; temp += tolower(str2[i]); temp += tolower(str2[i+1]); set2.push_back(temp); } } for(int i = 0; i < set1.size(); i++) { for(int j = 0; j < set2.size(); j++) { if(set1[i] == set2[j] && visited[j] == 0) { visited[j] = 1; overlapCnt++; break; } } } if(overlapCnt == 0) { if(set1.size() + set2.size() - overlapCnt == 0) { return 65536; } else { return 0; } } else { double zacard = overlapCnt / (double)(set1.size() + set2.size() - overlapCnt); return zacard * 65536; } } | cs |
'Programmers > Level 2' 카테고리의 다른 글
[프로그래머스 2] 비밀지도 (C/C++) (0) | 2020.01.05 |
---|---|
[프로그래머스 2] 캐시 (C/C++) (0) | 2020.01.05 |
[프로그래머스 2] 가장 큰 정사각형 찾기 (C/C++) (★★★) (0) | 2020.01.04 |
[프로그래머스 2] 오픈채팅방 (C/C++) (★) (0) | 2020.01.04 |
[프로그래머스 2] 폰켓몬 (C/C++) (0) | 2020.01.04 |