Florescence

Making Anagrams 본문

Algorithm/Hacker Rank

Making Anagrams

마산와사비 2020. 1. 6. 16:52
 

Strings: Making Anagrams | HackerRank

How many characters should one delete to make two given strings anagrams of each other?

www.hackerrank.com

  • 풀이
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    // Complete the makeAnagram function below.
    static int makeAnagram(String a, String b) {
        if (a.length() < b.length()) {
            String tmp = a;
            a = b;
            b = tmp;
        }

        char[] aArr = a.toCharArray();
        char[] bArr = b.toCharArray();

        for (int i = 0; i < a.length(); i++) {
            for (int j = 0; j < b.length(); j++) {
                if (aArr[i] == bArr[j]) {
                    aArr[i] = '.';
                    bArr[j] = '/';
                }
            }
        }

        int ret = 0;
        for (int i = 0; i < a.length(); i++) {
            if (aArr[i] != '.') {
                ret++;
            }
        }

        for (int i = 0; i < b.length(); i++) {
            if (bArr[i] != '/') {
                ret++;
            }
        }

        return ret;

    }

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String a = scanner.nextLine();
        String b = scanner.nextLine();

        int res = makeAnagram(a, b);

        bufferedWriter.write(String.valueOf(res));
        bufferedWriter.newLine();

        bufferedWriter.close();
        scanner.close();
    }
}

'Algorithm > Hacker Rank' 카테고리의 다른 글

Sherlock and the Valid String  (0) 2020.01.07
Alternating Characters  (0) 2020.01.06
Comments