본문 바로가기
CodeSignal

firstNotRepeatingCharacter

by Doromi 2024. 2. 27.
728x90
반응형

주어진 문자열에서 첫 번째로 등장하는 반복되지 않는 문자를 찾는 것입니다. 즉, 문자열에서 한 번만 등장하는 문자를 찾아야 합니다. 만약 이러한 문자가 없다면 '_'를 반환해야 합니다.

예를 들어, 문자열 "abacabad"에서는 'c'와 'd'가 두 번 등장하지 않으므로 두 문자 중 첫 번째로 등장하는 'c'를 반환해야 합니다.

문제의 구체적인 설명은 다음과 같습니다:

  • 주어진 문자열 s는 소문자 영어 알파벳으로만 구성됩니다.
  • 문자열의 길이는 1에서 10^5 사이입니다.
  • 첫 번째로 등장하는 반복되지 않는 문자를 찾아 반환합니다. 만약 이러한 문자가 없다면 '_'를 반환합니다.

 

char solution(string s) {
     Dictionary<char,int> dic = new Dictionary<char, int>();
     
     foreach(char c in s){
         if(dic.ContainsKey(c)){
             dic[c]++;
         }
         else{
             dic[c] = 1;
         }
     }
     
     foreach(char c in s){
         if(dic[c] == 1) return c;
     }
    
    return '_';
}
charCount라는 Dictionary는 각 문자와 해당 문자의 등장 횟수를 저장하기 위한 자료구조입니다.
문자열 s를 순회하면서 각 문자의 등장 횟수를 charCount에 저장합니다.
만약 현재 문자 c가 이미 charCount에 존재한다면 해당 문자의 등장 횟수를 증가시킵니다. 그렇지 않으면 등장 횟수를 1로 설정합니다.
이제 문자열을 다시 순회하면서 등장 횟수가 1인 첫 번째 문자를 찾습니다.
등장 횟수가 1인 문자를 찾으면 해당 문자를 반환하고 메서드를 종료합니다.
728x90
반응형

'CodeSignal' 카테고리의 다른 글

sudoku2  (2) 2024.03.06
rotateImage  (1) 2024.02.28
Count Sum of Two Representations 2  (1) 2024.02.26
Kill K-th Bit  (0) 2024.02.22
Tennis Set  (0) 2024.02.20