[BOJ][C#] 12904 A와 B

LimJaeJun·2024년 1월 10일
0

PS/BOJ

목록 보기
94/108

📕 문제

📌 링크

📗 접근 방식

만약 s와 t의 길이가 같다면, 두 문자열이 같은지 확인한다.

만약 같다면, answer를 1로 설정하고 반복을 종료한다.

만약 t의 마지막 문자가 'A'라면, t의 마지막 문자를 제거합니다.

그렇지 않고 'B'라면, t의 마지막 문자를 제거하고 나머지 문자열을 뒤집습니다.

최종적으로 answer를 출력합니다.
이로써 입력된 문자열 s를 문자열 t로 바꿀 수 있는 경우에는 1을, 그렇지 않은 경우에는 0을 출력해준다.

📘 코드

namespace BOJ
{
    class No_12904
    {
        static void Main()
        {
            string s = Input();
            string t = Input();
            int answer = 0;

            while (true)
            {
                if (s.Length == t.Length)
                {
                    if (s == t)
                        answer = 1;
                    break;
                }

                if (t[t.Length - 1] == 'A')
                    t = t.Remove(t.Length - 1);
                else
                {
                    t = t.Remove(t.Length - 1);
                    char[] charArray = t.ToCharArray();
                    Array.Reverse(charArray);
                    t = new string(charArray);
                }
            }

            Console.WriteLine(answer);
        }

        static string Input() => Console.ReadLine();
    }
}

📙 오답노트

s를 t로 변환하는 과정에서 시간초과가 떴다.
s를 t로 변환시키는 것이 아니라 t를 s로 변환시키는 것이 키포인트였던 것 같다.

📒 알고리즘 분류

  • 구현
  • 그리디 알고리즘
  • 문자열
profile
Dreams Come True

0개의 댓글

관련 채용 정보