Anagram이란
Anagram이란 문자의 종류, 빈도가 같은 두 문자열을 의미합니다.
예를 들면 아래와 같은 문자열은 Anagram입니다.
abcd | acdb |
ttmt | mttt |
bobobo | obobob |
두 문자열이 Anagram인지 판별하기 위해서 저는 다음과 같은 알고리즘을 사용할 것입니다.
1. 문자열을 문자 배열로 변환한다.
2. 문자 배열을 정렬한다.
3. 정렬된 문자 배열이 같은지 비교한다.
문자열을 정렬한 후 비교해서 같다면 문자의 종류, 빈도가 같으니 Anagram이라 할 수 있습니다.
코드
import java.util.Arrays;
public class Anagram {
public static boolean isAnagram(String str1, String str2) {
// 1. 문자열을 문자 배열로 변환한다.
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
// 2. 문자 배열을 정렬한다.
Arrays.sort(charArray1);
Arrays.sort(charArray2);
// 3. 정렬된 문자 배열이 같은지 비교한다.
return Arrays.equals(charArray1, charArray2);
}
}
'Java > 알고리즘' 카테고리의 다른 글
[Java] Hackerrank Two Strings (0) | 2020.02.05 |
---|---|
[Java] 스택 두 개로 큐 구현하기 (4) | 2020.02.04 |
[Java] 프로그래머스 카카오 프렌즈 컬러링북 (1) | 2020.01.29 |
카카오 겨울 인턴 알고리즘 문제 (0) | 2019.11.09 |
[Java DP] 프로그래머스 2 X n 타일링 (3) | 2019.09.23 |
댓글