uploaded at 2023. 1. 17. 오후 4:44:13
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/17677#qna
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.lang.StringBuilder;
|
||||||
|
class Solution {
|
||||||
|
ArrayList<String> hs = new ArrayList<>();
|
||||||
|
HashSet<String> hs2 = new HashSet<>();
|
||||||
|
HashMap<String,Integer> hm2 = new HashMap<>(), hm3 = new HashMap<>();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
private double inter(){
|
||||||
|
int in = 0, inM = 0;
|
||||||
|
System.out.println(hs2.size());
|
||||||
|
Iterator<String> it = hs2.iterator();
|
||||||
|
while(it.hasNext()){
|
||||||
|
String ob = it.next();
|
||||||
|
it.remove();
|
||||||
|
in += Math.min(hm2.getOrDefault(ob,0),hm3.getOrDefault(ob,0));
|
||||||
|
inM += Math.max(hm2.getOrDefault(ob,0),hm3.getOrDefault(ob,0));
|
||||||
|
}
|
||||||
|
//System.out.println(in+"in inM"+inM);
|
||||||
|
return (double)in/(double)inM;
|
||||||
|
}
|
||||||
|
private int st(String b, Integer x){
|
||||||
|
hs.clear();
|
||||||
|
System.out.println(b);
|
||||||
|
for(int a = 0; a < b.length()-1; a++){
|
||||||
|
int c = a+1;
|
||||||
|
if(Character.isAlphabetic(b.charAt(a))&&Character.isAlphabetic(b.charAt(c))){
|
||||||
|
sb.append(b.charAt(a));
|
||||||
|
sb.append(b.charAt(c));
|
||||||
|
String temp = sb.toString();
|
||||||
|
//System.out.println(temp);
|
||||||
|
hs.add(temp);
|
||||||
|
hs2.add(temp);
|
||||||
|
if(x == 2) hm2.put(temp,hm2.getOrDefault(temp,0)+1);
|
||||||
|
else hm3.put(temp,hm3.getOrDefault(temp,0)+1);
|
||||||
|
sb.setLength(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//test += hs.size();
|
||||||
|
return hs.size();
|
||||||
|
}
|
||||||
|
public int solution(String str1, String str2) {
|
||||||
|
int a = st(str1.toLowerCase(),2), b = st(str2.toLowerCase(),3);
|
||||||
|
if(a == 0 && b == 0) return 65536;
|
||||||
|
// int c = inter();//hs2.size();
|
||||||
|
//System.out.println(a+" "+b);
|
||||||
|
// System.out.println(c);
|
||||||
|
return (int)(inter()*65536);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user