728x90
반응형
문자열에서 숫자만으로 이루어진 가장 긴 접두사를 찾는 문제입니다.
주어진 문자열에서 처음부터 숫자가 나오기 시작하면서 숫자로만 이루어진 부분을 찾으면 됩니다.
string solution(string inputString) {
List<char> list = new List<char>();
foreach(char c in inputString){
if(c<65 && c != '(' && c != ')' && c != ' '){
list.Add(c);
}
else{
break;
}
}
return new String(list.ToArray());
}
List<char> list: 문자열에서 찾은 숫자를 저장할 리스트입니다.
foreach (char c in inputString): 입력 문자열을 순회합니다.
if (c < 65 && c != '(' && c != ')' && c != ' '): 현재 문자 c가 알파벳 대문자 이하의 ASCII 코드에 속하면서 괄호나 공백이 아닌 경우를 확인합니다. 이 조건이 만족하면 숫자로 간주하고 리스트에 추가합니다.
else: 만약 조건을 만족하지 않으면 숫자 이외의 문자가 나온 것이므로 순회를 중단합니다.
return new String(list.ToArray()): 리스트에 저장된 문자들을 배열로 변환하고, 이를 문자열로 만들어 반환합니다.
string solution(string inputString)
{
int length = inputString.Length;
int prefixEndIndex = 0;
// 문자열을 처음부터 순회하면서 숫자인 부분 찾기
for (int i = 0; i < length; i++)
{
char currentChar = inputString[i];
// 현재 문자가 숫자인 경우
if (char.IsDigit(currentChar))
{
// prefixEndIndex를 현재 인덱스로 갱신
prefixEndIndex = i;
}
else
{
// 숫자가 아닌 문자가 나오면 순회 종료
break;
}
}
// 찾은 숫자로만 이루어진 부분 반환
return inputString.Substring(0, prefixEndIndex + 1);
}
문자열을 처음부터 순회하면서 숫자가 나오면 prefixEndIndex를 갱신하고, 만약 숫자가 아닌 문자가 나오면 순회를 종료합니다. 최종적으로 Substring을 사용하여 찾은 숫자로만 이루어진 부분을 반환합니다.
728x90
반응형
'CodeSignal' 카테고리의 다른 글
Bishop and Pawn (0) | 2023.12.30 |
---|---|
digitDegree (0) | 2023.12.30 |
arrayMaxConsecutiveSum (1) | 2023.12.24 |
growingPlant (0) | 2023.12.24 |
differentSymbolsNaive (1) | 2023.12.22 |