728x90
반응형
주어진 문자열에서 서로 다른 문자의 개수를 찾는 것입니다. 주어진 문자열에서 서로 다른 문자의 개수를 찾는 것입니다.
문자열 "cabca"에서 서로 다른 문자는 'a', 'b', 'c'로 총 3개입니다.
int solution(string s) {
HashSet<char> hash = new HashSet<char>();
char[] ch = s.ToCharArray();
foreach(char c in ch){
if(!hash.Contains(c)){
hash.Add(c);
}
}
return hash.Count();
}
HashSet<char> hash = new HashSet<char>();: HashSet은 중복된 요소를 허용하지 않는 자료 구조입니다. 여기서는 문자(char)를 저장하는 HashSet을 생성합니다.
char[] ch = s.ToCharArray();: 입력 문자열 s를 문자 배열로 변환합니다.
foreach(char c in ch) { ... }: 문자 배열을 순회하면서 각 문자에 대해 아래의 동작을 수행합니다.
if(!hash.Contains(c)) { hash.Add(c); }: HashSet에 현재 문자 c가 포함되어 있지 않으면 HashSet에 추가합니다. HashSet은 중복을 허용하지 않으므로, 이미 포함되어 있는 문자는 무시됩니다.
return hash.Count();: HashSet에 저장된 요소의 개수, 즉 서로 다른 문자의 개수를 반환합니다.
다른 방법으로는,
LINQ의 Distinct 메서드와 Count 메서드를 사용하여 문자열에서 서로 다른 문자의 개수를 구합니다.
int solution(string s) {
// 문자열을 distinct한 문자로 변환하고, 그 개수를 반환
return s.Distinct().Count();
}
728x90
반응형
'CodeSignal' 카테고리의 다른 글
arrayMaxConsecutiveSum (1) | 2023.12.24 |
---|---|
growingPlant (0) | 2023.12.24 |
extractEachKth (1) | 2023.12.19 |
Circle of Numbers (0) | 2023.12.18 |
chessBoardCellColor (2) | 2023.12.17 |