백준

백준 2941번 c#

대왕군 2024. 1. 17. 17:23

 

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //이 코드의 규칙
            //1. 특수문자는 카운트 하지 않음
            //2. z일때 그전 글자가 d인지, 그다음 글자가 =인지 확인(만약 조건 부합하면 카운트 하지 않음)
            //3. j일때 그전 글자가 l혹은 n인지, 그다음 글자가 =인지 확인(만약 조건 부합하면 카운트 하지 않음)

            //소문자 a~z는 아스키코드 97~122임

            //그냥 콘솔창 예쁘게 꾸미는 코드(심심해서 넣음)
            Console.BackgroundColor = ConsoleColor.DarkCyan;
            //내 입력값 받아올 변수
            string input = Console.ReadLine();
            //결과값 넣을 변수
            int result = 0;

            //내 입력값 길이만큼 반복
            for (int i = 0; i < input.Length; i++)
            {
                //a~z일때(아스키코드 a~z의 범위에 들어갈 때)
                if (97 <= input[i] && input[i] <= 122)
                {
                    //지금 확인중인 글자가 z이며
                    //i - 1이 0 이상이고 i + 1이 내 입력값 길이보다 작을때(배열범위 넘어가는 오류를 방지하기 위함)
                    if (input[i] == 'z' && i - 1 >= 0 && i + 1 < input.Length)
                    {
                        //현재 확인중인 글자의 앞자리가 d이고 뒷자리가 =일때
                        //카운트하지 않고 반복문 넘김
                        if (input[i - 1] == 'd' && input[i + 1] == '=')
                        {
                            continue;
                        }
                    }
                    //지금 확인중인 글자가 j이며
                    //i - 1이 0 이상일때(배열범위 넘어가는 오류를 방지하기 위함)
                    else if (input[i] == 'j' && i - 1 >= 0)
                    {
                        //지금 확인중인 글자의 앞자리가 l 혹은 n일때
                        //카운트하지 않고 반복문 넘김
                        if (input[i - 1] == 'l' || input[i - 1] == 'n')
                        {
                            continue;
                        }
                    }
                    //결과값 +1
                    result++;
                }
                //아스키코드 a~z의 범위에 들어갈 때(즉, 특수기호일때) 카운트 안하고 반복문 넘김
                //이 else문 굳이 없어도 되긴함
                else
                {
                    continue;
                }
            }
            //결과값 출력
            Console.WriteLine(result);
        }
    }
}

 

일단 이렇게 코드를 짜놨는데 다른 사람은 엄청 간단한 방식으로 풀었다

[백준 C#] 2941번 크로아티아 알파벳 (C#) :: Hostramus (tistory.com)

 

[백준 C#] 2941번 크로아티아 알파벳 (C#)

1. 문제 - [백준 C#] 2941번 크로아티아 알파벳 (C#) (https://www.acmicpc.net/problem/2941) 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경

hostramus.tistory.com

 

'백준' 카테고리의 다른 글

백준 25206번 c#  (0) 2024.01.18
백준 1316번 c#  (0) 2024.01.17
백준 1157번 c#  (0) 2024.01.16
백준 10988번 c#  (0) 2024.01.16
백준 2444번 c#  (0) 2024.01.15