https://school.programmers.co.kr/learn/courses/30/lessons/120886
public int solution1(String before, String after) {
int answer = 0;
char[] arr = after.toCharArray();
int[] count1 = new int[arr.length];
int[] count2 = new int[arr.length];
for (int i = 0; i < before.length(); i++) {
char c = before.charAt(i);
char d = after.charAt(i);
for (int j = 0; j < arr.length; j++) {
if (c == arr[j]) count1[j]++;
if (d == arr[j]) count2[j]++;
}
}
return Arrays.equals(count1, count2) ? 1 : 0;
}
다른 풀이
public int solution(String before, String after) {
return isCheck(getList(before), getList(after)) ? 1 : 0;
}
private boolean isCheck(List<Integer> first, List<Integer> second) {
for (int i = 0; i < first.size(); i++) {
if (first.get(i) != second.get(i)) {
return false;
}
}
return true;
}
// 문자의 빈도만 리스트로 반환, 문자는 없음
private List<Integer> getList(String str) {
return Arrays.stream(str.split(""))
.collect(Collectors.groupingBy(s -> s))
.values()
.stream()
.map(List::size)
.collect(Collectors.toList());
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 OX 퀴즈 (0) | 2022.12.10 |
---|---|
프로그래머스 n의 배수 고르기 (0) | 2022.12.10 |
프로그래머스 369게임 (0) | 2022.12.10 |
프로그래머스 7의 개수 (0) | 2022.12.10 |
프로그래머스 2차원으로 만들기 (0) | 2022.12.10 |