#유형 : 문자열
#난이도 : lv2
#맨 처음 문제 읽을 때는 너무 어려워 보였는데, 그냥 문자열을 입력받아, 2개씩 끊어 교집합/합집합 을 구하는 것이었다.
입력들을 소문자로 통일해주고, a~z 사이의 값이 아니면 무시하여 부분문자들을 만들어주면 된다.
(int)(((double)교집합 / (double)합집합) * 65536) 를 구해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package programmers;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
public class p17677 {
static ArrayList<String> inter = new ArrayList<>();
static ArrayList<String> union = new ArrayList<>();
static ArrayList<String> arr1 = new ArrayList<>();
static ArrayList<String> arr2 = new ArrayList<>();
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(solution("aa1+aa2", "AAAA12"));
}
public static int solution(String str1, String str2) {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
for(int i=0; i<str1.length()-1; i++) {
char ch1 = str1.charAt(i);
char ch2 = str1.charAt(i+1);
if(ch1 >= 'a' && ch1 <= 'z' && ch2 >= 'a' && ch2 <= 'z') {
arr1.add(ch1+""+ch2);
}
}
for(int i=0; i<str2.length()-1; i++) {
char ch1 = str2.charAt(i);
char ch2 = str2.charAt(i+1);
if(ch1 >= 'a' && ch1 <= 'z' && ch2 >= 'a' && ch2 <= 'z') {
arr2.add(ch1+""+ch2);
}
}
Collections.sort(arr1);
Collections.sort(arr2);
for(int i=0; i<arr1.size(); i++) {
String str = arr1.get(i);
if(arr2.remove(str)) {
inter.add(str);
}
union.add(str);
}
for(int i=0; i<arr2.size(); i++) {
String str = arr2.get(i);
union.add(str);
}
double rs = 0;
if(union.size() == 0)
rs = 1;
else
rs = (double)inter.size() / (double)union.size();
return (int)(rs*65536);
}
}
|
cs |
'프로그래머스' 카테고리의 다른 글
#프로그래머스_괄호 변환 - Java 자바 (0) | 2020.06.02 |
---|---|
#프로그래머스_[1차] 캐시 - Java 자바 (0) | 2020.05.29 |
#프로그래머스_문자열 압축 - Java 자바 (0) | 2020.05.24 |
#프로그래머스_길찾기 - Java 자바(2019 KAKAO BLIND RECRUITMENT) (0) | 2020.05.07 |
#프로그래머스_SQL_String, Date - DATETIME에서 DATE로 형 변환 (0) | 2020.04.28 |