-
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { /** * #1919) 에너그램 만들기 * 두 개의 단어가 순서를 바꿔서 같아질 수 있으면 이걸 에너그램이라고 함 * 두 단어가 서로 애너그램 관계에 있도록 만들기 위해서 제거해야 하는 문자의 최소 개수 * 문자를 제거할 때에는 아무 위치에 있든 상관 없음 * 문자 A,B에서 둘다 제거가능 */ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String A = br.readLine(); String B = br.readLine(); int[] arr = new int[26]; int[] brr = new int[26]; int count = 0; // - 'a' 로 0~25까지에 알파벳 수 카운팅 for (int i = 0; i < A.length(); i++) { arr[A.charAt(i) - 'a']++; } for (int i = 0; i < B.length(); i++) { brr[B.charAt(i) - 'a']++; } // 결국 카운팅된값이 다를때 제거해야하는 경우가 생김 // 이때, 큰쪽에서 작은쪽을 빼준다 for (int i = 0; i < arr.length; i++) { if (arr[i] > brr[i]) { count += arr[i] - brr[i]; } else if (arr[i] < brr[i]) { count += brr[i] - arr[i]; } } System.out.println(count); } }
- 여러번 시도해서 성공
- 중간에 무조건 arr[i] = brr[i]이 같을경우에 카운트를 증가시키지 않았는데 한쪽이 더 많을경우에도 제거해야한다