728x90
반응형
주어진 문자열을 재배열하여 팰린드롬을 형성할 수 있는지 확인하는 문제입니다.
예를 들어, "aabb" 문자열은 "abba"로 재배열하여 팰린드롬을 형성할 수 있습니다. 따라서 이 경우에는 함수가 true를 반환해야 합니다.
팰린드롬은 앞으로 읽어도 뒤로 읽어도 동일한 문자열을 말합니다. 문제에서는 문자열을 재배열하여 팰린드롬을 만들 수 있는지를 확인하라고 명시하고 있습니다.
bool solution(string inputString) {
Dictionary<char,int> dic = new Dictionary<char, int>();
foreach(char c in inputString){
if(dic.ContainsKey(c)){
dic[c]++;
}
else dic[c] = 1;
}
int oddCount = 0;
foreach(var entry in dic){
if(entry.Value % 2 != 0){
oddCount++;
}
}
return oddCount <= 1;
}
Dictionary<char, int> 타입의 charCount 딕셔너리를 선언합니다. 이 딕셔너리는 각 문자의 등장 횟수를 기록합니다.
문자열을 순회하면서 charCount에 각 문자의 등장 횟수를 업데이트합니다.
문자열 순회가 끝나면 oddCount 변수를 선언하고 0으로 초기화합니다. oddCount는 홀수 횟수를 갖는 문자의 개수를 나타냅니다.
foreach 루프를 통해 charCount의 값들을 확인하면서, 각 문자의 등장 횟수가 홀수인 경우 oddCount를 증가시킵니다.
최종적으로 oddCount가 1 이하이면 문자열을 재배열하여 팰린드롬을 만들 수 있으므로 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
isIPv4Address (0) | 2023.12.10 |
---|---|
areEquallyStrong (1) | 2023.12.10 |
arrayChange (0) | 2023.12.09 |
Are Similar? (2) | 2023.12.06 |
Add Border (0) | 2023.12.05 |