티스토리 뷰
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 |