CodeSignal

reverseInParentheses

Doromi 2023. 12. 3. 22:48
728x90
반응형
주어진 문자열에서 괄호로 묶인 부분의 문자열을 뒤집는 함수를 작성하는 문제입니다. 
주어진 문자열은 항상 괄호가 올바르게 매치되어 있다고 가정됩니다.

스택을 사용하여 괄호의 시작과 끝을 추적하면서 문자열을 뒤집을 수 있습니다. 

 

string solution(string inputString) {
    char[] ch = inputString.ToCharArray();
    Stack<int> stack = new Stack<int>();
    int start = 0;
    int end = 0;
    for(int i = 0;i<ch.Length;i++){
        if(ch[i] == '('){
            stack.Push(i);
        }
        else if(ch[i] == ')'){
           start = stack.Pop();
           end = i;
           while(start<end){
               char temp = ch[start];
               ch[start] = ch[end];
               ch[end] = temp;
               start++;
               end--;
           }
        }
    }
    return new string(ch).Replace("(", "").Replace(")", "");
}
이 코드에서는 스택을 사용하여 열린 괄호의 인덱스를 추적하고, 닫힌 괄호를 만나면 해당 부분을 뒤집습니다. 마지막으로 괄호를 제거하여 최종 결과를 얻습니다.

 

728x90
반응형