학습(0)/C++ 문제풀이

A로 B 만들기

누가 뭐래도 개발자 2025. 3. 16. 23:49

a문자열로 b문자열을 만들 수 있는가 체크.

 

1. 같은 문자로 이루어져 있다면, 모든 문자는 짝수일 것이다.

2. map을 이용하여 각 문자를 추출한다.

3. 값이 짝수가 맞는지 확인.

비트 연산자를 이용하여 홀수 체크를 했고, 홀수라면 조기반환.

 

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

int solution(string before, string after) {
    int answer = 1;
    unordered_map<char, int> map;
 
    for (int i = 0; i < before.size(); ++i)
    {
        ++map[before[i]];
        ++map[after[i]];
    }
 
    for (const auto& it : map)
    {
        if (it.second & 1) return 0;
    }

    return answer;
}

 

아니 왜자꾸 sort 안쓰냐고 민재야!

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(string before, string after) {
    sort(before.begin(), before.end());
    sort(after.begin(),after.end());
    if(after == before) return 1;
    else return 0;
}

 

'학습(0) > C++ 문제풀이' 카테고리의 다른 글

저주의 숫자 3  (0) 2025.03.17
이진수 더하기  (0) 2025.03.17
삼각형의 완성 조건2  (0) 2025.03.16
안전지대  (0) 2025.03.16
다항식 더하기  (0) 2025.03.16