반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/17677

 

코딩테스트 연습 - [1차] 뉴스 클러스터링

뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브

programmers.co.kr

 

 

 

import java.util.ArrayList;

class Solution {
    public int solution(String str1, String str2) {
        int answer = 0;

        str1 = str1.toUpperCase();
        str2 = str2.toUpperCase();

        ArrayList<String> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();

        String temp;
        for(int i = 0 ; i < str1.length()-1; ++i){
            temp = str1.substring(i, i+2);
            if(
                            'A' <= temp.charAt(0) && temp.charAt(0) <= 'Z'
                            &&
                            'A' <= temp.charAt(1) && temp.charAt(1) <= 'Z'
            ){
                        list1.add(temp);
            }
        }
        for(int i = 0 ; i < str2.length()-1; ++i){
            temp = str2.substring(i, i+2);
            if(
                            'A' <= temp.charAt(0) && temp.charAt(0) <= 'Z'
                            &&
                            'A' <= temp.charAt(1) && temp.charAt(1) <= 'Z'
            ){
                        list2.add(temp);
            }
        }

        if(list1.size() + list2.size() == 0)
            return 65536;

        int total = list1.size() + list2.size();
        int common = 0;

        for(int i = 0 ; i < list1.size(); ++i){
            for(int j = 0 ; j < list2.size(); ++j){
                if(list1.get(i).equals(list2.get(j))){
                    ++common;
                    list2.set(j , "*"); // 한번 카운팅 한거니까 없애기
                    break;
                }
            }
        }

        double result = (double)common / (total-common);
        answer = (int) (result * 65536);



        return answer;
    }
}
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기