Java(자바) 알고리즘 - 아나그램(Anagram) 설명
① Java의 replaceAll, toCharArray, sort 함수를 이용했어요.
② 소문자로 변환 후 정렬이 핵심이예요.
③ 예를들어 elivs 는 = lives , basic = isabc 와 같이 구성요소가 같으면 아나그램(Anagram)
Java(자바) 알고리즘 - 아나그램(Anagram) 소스 코드
원본코드
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 | import java.util.Arrays; public class AnagramTest { public static void isAnagram(String a1, String a2){ //공백 제거 a1 = a1.replaceAll("\\p{Z}", ""); a2 = a2.replaceAll("\\p{Z}", ""); //두 문자열의 길이를 미리 체크 if ( a1.length() != a2.length() ) { System.out.println("결과 : 두 문자열의 길이가 다릅니다."); return; } //소문자 변환 + 배열 변환 char[] c1 = a1.toLowerCase().toCharArray(); char[] c2 = a2.toLowerCase().toCharArray(); //Arrays.sort() 오름 차순 정렬 Arrays.sort(c1); Arrays.sort(c2); //String 변환 String sc1 = new String(c1); String sc2 = new String(c2); //객체 내용을 비교 if( sc1.equals(sc2) ){ System.out.println("결과 : 아나그램 성립!"); } else { System.out.println("결과 : 아나그램 비성립!"); } } public static void main(String[] args) { AnagramTest anagram = new AnagramTest(); //Test1 anagram.isAnagram("Basic","is ABC"); //Test2 anagram.isAnagram("Basic","is ABCD"); //Test3 anagram.isAnagram("Basic","is ABD"); } } | cs |
실행화면
Java(자바) 알고리즘 - 아나그램(Anagram) 소스 다운
자바(Java)로 작성한 후 같은 내용을 Python(파이썬) 언어로 작성해 보시면 더욱 좋을 것 같습니다.
'언어 > Java' 카테고리의 다른 글
Java(자바) Runtime - 외부 프로세스(exec) 실행 예제 소스 (3) | 2017.12.29 |
---|---|
Java(자바) BlockingQueue - Producer 및 Consumer 패턴 예제 (0) | 2017.12.27 |
Java(자바) - Map(맵) 중요한 9가지 사용법 설명 (0) | 2017.11.15 |
Java(자바) - 멀티쓰레드(Multi Thread) 동기화 간단 쉬운 예제 (0) | 2017.09.11 |
Java(자바) - 멀티쓰레드(Multi Thread) 상황에서의 싱글톤(Singleton) (0) | 2017.09.10 |