* Computer Science/Algorithm

299. Bulls and Cows

soicem 2021. 2. 16. 07:38

문제: leetcode.com/problems/bulls-and-cows/

 문자열 중 같은 position에 있으면 A, 아니면 자리는 같지 않더라도 같은 값이 다른 포지션에 있을 경우 B다.

 

class Solution {
public:
    string getHint(string secret, string guess) {
        unordered_map<char, int> m;
        int A = 0;
        int B = 0;
        for(int i = 0; i < secret.size(); i++){
            if(secret[i] == guess[i]){
                A++;
                secret[i] = ' ';
                guess[i] = ' ';
            } else {
                m[secret[i]]++;
            }
        }
        
        for(int i = 0; i < guess.size(); i++){
            char c = guess[i];
            if(guess[i] == ' ') continue;
            if(m[c] > 0){
                m[c] -= 1;
                B++;
            }
        }
        string ret = to_string(A) + "A" + to_string(B) + "B";
        return ret;
    }
};