[BAEKJOON] 백준 31495: 그게 무슨 코드니.. (C#)

2024. 8. 2. 03:10IT/BaekJoon

문제 링크

https://www.acmicpc.net/problem/31495

 

 

문제

토카는 문자열을 출력하는 파이썬 코드를 작성하는 것에 자신감이 있었다. 어느 날 Hello, World!를 출력해달라는 요청을 받은 토카는 자신있게 코드를 작성했지만, 큰따옴표를 찍지 않는 치명적인 실수로 인해 컴파일 에러를 받고 말았다!!

토카는 이로 인해 자신감을 잃어버려 문자열 출력을 멀리하고 있다. 당신은 토카의 자신감을 회복시켜 주기 위해 문자열을 입력받았을 때 정확한 문자열인지 판독하는 프로그램을 작성하고자 한다. 정확한 문자열은 문자열의 시작과 끝이 큰따옴표로 이루어져 있으며 큰따옴표를 제외한 문자가 포함되어 있는 문자열을 뜻하는 말로, 대표적으로는 "Hello, World!"가 있다. 즉, 큰따옴표로 시작하지 않거나 끝나지 않은 Dijkstra A"b등의 문자열은 정확한 문자열이 아니다. 이제 토카의 문자열이 정확한 문자열인지 판독하는 코드를 작성하여 보자!

 

 

입력

첫 번째 줄에 토카의 문자열을 뜻하는 문자열 S가 주어진다. S 50글자를 넘지 않으며, 영어 대소문자와 큰따옴표, 그리고 공백으로 이루어져 있다. 큰따옴표는 전체 문자열에서 2개 이하로 들어옴이 보장된다. 큰따옴표란 "를 의미한다. 또한, 큰따옴표 안에 있는 문자열 앞뒤에 공백이 주어지는 경우나 문자열의 시작과 끝에 공백이 주어지는 경우는 주어지지 않는다.

 

출력

토카의 문자열이 정확한 문자열이라면 큰따옴표 내부 문자열을, 만약 토카의 문자열이 정확한 문자열이 아니거나, 큰따옴표 내부가 빈 문자열이라면 CE를 출력한다.

 

 

 

통과한 답안

using System.Text;

namespace _31495
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string S = Console.ReadLine();

            if (S.Length < 2)
            {
                Console.WriteLine("CE");
                return;
            }

            if (S[0] == '"' && S[S.Length - 1] == '"')
            {
                string innerString = S.Substring(1, S.Length - 2);
                if (innerString.Length > 0)
                {
                    Console.WriteLine(innerString);
                }
                else
                {
                    Console.WriteLine("CE");
                }
            }
            else
            {
                Console.WriteLine("CE");
            }
        }
    }
}

 

주어진 입력값이 큰 따옴표로 둘러싸인 문자인지 확인하는 문제로

문제의 조건에서 문자열의 처음과 끝이 큰 따옴표인지 확인하도록 제한을 두었다.

 

S의 길이가 2가 넘는지 확인하고,

넘는 경우에 첫 글자와 끝 글자가 큰 따옴표인지 확인하고,

큰 따옴표 사이에 있는 문자를 추출하여,

추출한 문자가 존재한다면 그 문자를 출력하도록 구현하였다.

그 외에는 CE가 출력되도록 하였다.