반응형
https://school.programmers.co.kr/learn/courses/30/lessons/17677
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr



import java.util.ArrayList; class Solution { public int solution(String str1, String str2) { int answer = 0; ArrayList<String> arr1 = new ArrayList<>(); ArrayList<String> arr2 = new ArrayList<>(); // 대문자로 변경 str1 = str1.toUpperCase(); str2 = str2.toUpperCase(); // 한글자씩 뽑아서 특수문자 제거 후 arr1 에 추가 for (int i=0; i<str1.length()-1; i++) { char one = str1.charAt(i); char two = str1.charAt(i+1); if (one >= 'A' && one <= 'Z' && two >= 'A' && two <= 'Z') { arr1.add(one + "" + two); } } // 한글자씩 뽑아서 특수문자 제거 후 arr2 에 추가 for (int i=0; i<str2.length()-1; i++) { char one = str2.charAt(i); char two = str2.charAt(i+1); if (one >= 'A' && one <= 'Z' && two >= 'A' && two <= 'Z') { arr2.add(one + "" + two); } } // arr1 과 arr2 를 비교 후, 같은 값은 제거 (교집합 구하기) int min = 0; // 교집합 증감 함수 for (int i=0; i<arr1.size(); i++) { for (int j=0; j<arr2.size(); j++) { if (arr1.get(i).equals(arr2.get(j))) { arr2.remove(j); min++; break; } } } double ans = 0; ans = (double)min / (double)(arr1.size() + arr2.size()); if ((double)(arr1.size() + arr2.size()) == 0) return 1 * 65536; else return (int)(ans * 65536); } }
※ Character.isAlphabetic 함수를 이용하면 if (one >= 'A' && one <= 'Z') 부분을 생략할 수 있다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]JAVA - Level3. N으로 표현 (0) | 2022.07.09 |
---|---|
[프로그래머스]JAVA - Level3. 입국심사 (0) | 2022.07.05 |
[프로그래머스]JAVA - Level 2. 문자열 압축 (0) | 2022.04.17 |
[프로그래머스]JAVA - Level 2. 오픈채팅방 (0) | 2022.04.11 |
[프로그래머스]JAVA - Level 1. 완주하지 못한 선수 (0) | 2022.04.08 |