문제
1919번: 애너그램 만들기
접근
- 입력된 두 문자열이 애너그램 관계가 되도록 하려면 중복되는 문자열을 제외한 나머지를 없애면 된다.
- 배열을 가지고 푸는게 현명하지 않을까...?
내 코드
import java.io.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static int[][] arr = new int[2][26];
static int count;
public static void main(String[] args) throws IOException {
char[] a = br.readLine().toCharArray();
char[] b = br.readLine().toCharArray();
for (char c : a) {
arr[0][c-'a']++;
}
for (char c : b) {
arr[1][c-'a']++;
}
for (int i = 0; i < 26; i++) {
count += Math.abs(arr[0][i]-arr[1][i]);
}
System.out.println(count);
}
}
c-'a'
는 ASCII 코드를 index 값으로 변환시켜 각 알파벳에 맞는 index에 정보를 두기 위함.
- 결국엔 26개의 알파벳 하나하나를 보면서 첫 번째 입력 문자열과 두 번째 입력 문자열에서 얼마나 들어 있는지를 판단하면 답을 낼 수 있다.