From 36fa75b2485c90cf7ab4586f0b324d42fb81a409 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Tue, 17 Jan 2023 16:44:14 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202023.=201.=2017.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=204:44:13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../[1차] 뉴스 클러스터링/solution.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 programmers/[1차] 뉴스 클러스터링/solution.java diff --git a/programmers/[1차] 뉴스 클러스터링/solution.java b/programmers/[1차] 뉴스 클러스터링/solution.java new file mode 100644 index 0000000..43c3fa6 --- /dev/null +++ b/programmers/[1차] 뉴스 클러스터링/solution.java @@ -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 hs = new ArrayList<>(); + HashSet hs2 = new HashSet<>(); + HashMap hm2 = new HashMap<>(), hm3 = new HashMap<>(); + StringBuilder sb = new StringBuilder(); + private double inter(){ + int in = 0, inM = 0; + System.out.println(hs2.size()); + Iterator 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); + } +} \ No newline at end of file