Coding - Algo/Java

[SWEA] 3816:아나그램(Java 자바)

jainn 2022. 3. 17. 23:17
728x90

풀이 및 소스코드

class UserSolution {
	public static int FindAnagram(int L1, String S1, int L2, String S2) {
		int res = 0;
		char[] arr1 = S1.toLowerCase().toCharArray();
		char[] arr2 = S2.toLowerCase().toCharArray();
		// 소문자로 통일시켜주기.

		int[] a1Alph = new int[26];
		
		int n = arr1.length;
		int n2 = arr2.length;
		
		for(int i=0;i<n;i++) {
			a1Alph[arr1[i]-'a']++;
		}
		

		for (int i = 0; i <= n2 - n; i++) {
			char[] tmp = Arrays.copyOfRange(arr2, i, i + n);

			int[] a2Alph = new int[26];
			for(int j=0;j<n;j++) {
				a2Alph[tmp[j]-'a']++;
			}
			
			
			boolean c = true;
			for (int j = 0; j < 26; j++) {
				if (a1Alph[j] != a2Alph[j]) {
					c = false;
					break;
				}
			}
			if (c)
				res++;
		}
		return res;
	}
}
반응형