ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (JAVA) Anagram 알고리즘
    프로그래밍 2016. 10. 8. 01:12

    기술면접 Review

    구글에서 나온 문제라고 알고는 있었는데, 실제 면접가니까 땋!

    면접관님이 제시해주신 방향의 코딩을 습관화 하면 좋을거 같아서

    다시 Review 해본다.


    역시 코딩은 혼자하면 우물 안의 개구리네. 개굴개굴.

    다른 사람의 코드와 생각도 공유해야 재미도 있고 실력이 쑥쑥 크는거 같다.


    Anagram이란?

    동일한 알파벳을 재배열하여 만들수 있는 단어나 문장

    All the life's wisdom 

    can be found in anagrams. 

    Anagrams never lie.


    Question

    두 단어가 Anagram 일 경우 true, 아닐경우 false를 리턴하는 프로그램을 구현해보자.


    Solve.

    1. 대소문자 무시를 위해 문자열 대문자 변환

    2. 문자열을 char[] 형태로 변환

    String의 toCharArray 메소드 활용!!

    2. 문자열 내 알파벳 정렬

    Arrays.sort 활용!!

    3. char[] 형태를 String 형태로 변환하여 equal 메소드 활용하여 비교.


    이미 구현되어 있는 메소드를 최대한 활용하였는데,

    이러한 로직으로 생각하는게 JAVA를 많이 다뤄봐야

    메소드나 알고리즘이 번뜩 떠오르겠구나 라는 생각이 들었다.

    import java.util.Arrays; public class AnagramExam { public static void main(String[] args){ //TODO Aanagram 구현 System.out.println(isAnagram("TABB","AbBT")); System.out.println(isAnagram("TABB","ABAT")); //System.out.println(isAnagram("Leonardo da Vinci","O, Draconian devil!")); } public static boolean isAnagram(String word1, String word2){ System.out.println(word1+","+word2+" : Is it anagram? "); //String -> char 배열로 변환 //대소문자 무시하려고 to char[] charWord1 = word1.toUpperCase().toCharArray(); char[] charWord2 = word2.toUpperCase().toCharArray(); //정렬 Arrays.sort(charWord1); Arrays.sort(charWord2); //char[] -> String으로 변환하여 문자열 비교 String sortWord1 = new String(charWord1); String sortWord2 = new String(charWord2); if(sortWord1.equals(sortWord2)) return true; return false; } }


Designed by Tistory.