본문 바로가기
CodeSignal

differentSymbolsNaive

by Doromi 2023. 12. 22.
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