https://school.programmers.co.kr/learn/courses/30/lessons/17677
나의풀이
import java.util.*;
class Solution {
public int solution(String str1, String str2) {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
Map<String, Integer> map1 = new HashMap<>();
Map<String, Integer> map2 = new HashMap<>();
Set<String> set = new HashSet<>();
for(int i=0; i<str1.length()-1 ; i++){
String temp = str1.substring(i, i+2);
if(Character.isAlphabetic(temp.charAt(0))&&Character.isAlphabetic(temp.charAt(1))){
map1.put(temp, map1.getOrDefault(temp,0)+1);
set.add(temp);
}
}
for(int i=0; i<str2.length()-1 ; i++){
String temp = str2.substring(i, i+2);
if(Character.isAlphabetic(temp.charAt(0))&&Character.isAlphabetic(temp.charAt(1))){
map2.put(temp, map2.getOrDefault(temp,0)+1);
set.add(temp);
}
}
//합
int total=0;
for(String s: set){
total+=Math.max(map1.getOrDefault(s,0), map2.getOrDefault(s,0));
}
//교
int answer=0;
for(String s: map1.keySet()){
if(map2.containsKey(s)){
answer+=Math.min(map1.get(s), map2.get(s));
}
}
if(total == 0 && answer == 0) return 65536;
return (int)((double)answer/total* 65536) ;
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 행렬 테두리 회전하기 java 풀이( LEVEL2 ) (0) | 2023.06.14 |
---|---|
[프로그래머스] 시소 짝꿍 java 풀이(LEVEL2) (0) | 2023.06.14 |
[프로그래머스] [1차]캐시 java 풀이( LEVEL2 ) (0) | 2023.06.06 |
[프로그래머스] 튜플 java 풀이(LEVEL2) (0) | 2023.06.06 |
[프로그래머스] 하노이의 탑 java풀이(LEVEL2) (0) | 2023.05.29 |