언어/Java
Java(자바) 알고리즘 - 문자열로 서로 다른 단어 만들어내기(Anagram)
[좋은사람]
2017. 12. 25. 18:34
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(파이썬) 언어로 작성해 보시면 더욱 좋을 것 같습니다.