티스토리 뷰


Anagram 은 한 단어나 문장을 구성하고 있는 알파벳(char) 의 순서를 바꾸어 만든 다른 단어/문장이다. 

즉, 두 String 이 서로 Anagram 인지 확인해 보려면 서로 가지고있는 char 의 숫자를 세어 일치하는지 확인해 볼 수 있다. 


char 은 숫자로 표현가능하다. 

a부터 z까지 for 문을 돌리고 싶다면 아래와 같이 ++로 a부터 z까지 완성할 수 있다 

Java 에서 char 은 ASCI 문자에서의 숫자로 나타낼 수 있다. 


아래 예시에서는 String 2개를 입력받아 2개를 서로 Anagram 으로 만들기 위해서 몇개의 char 을 추가해야하는지 알아본다. 



public class MakingAnagrams_String { public static void main(String args[]) { Scanner in = new Scanner(System.in); String a = in.next(); String b = in.next(); System.out.println(numberNeeded(a,b)); } public static int numberNeeded(String first, String second) { int count =0; for (char alphabet = 'a';alphabet <= 'z'; alphabet++ ) { int dif = countNum(first,alphabet) - countNum(second,alphabet); if (dif<0) { dif = dif*-1; } count +=dif; } return count; } public static int countNum(String str, char ch) { int count =0; if(str.indexOf(ch)==-1) { return 0; } for(int i=0;i<str.length();i++) { if(str.charAt(i)==ch) { count++; } } return count; } }



'Programming' 카테고리의 다른 글

[Java 문제풀이] Binary Numbers  (0) 2018.04.03
[Java] 문자열  (0) 2018.03.30
[Java 문제풀이] Arrays: Left Rotation  (0) 2018.03.10
[Java 문제풀이] - 피보나치  (0) 2018.03.10
[Python] 파이썬 문법  (0) 2018.03.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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
글 보관함