문제 1

 

public void Problem1()
        {

            int length = Convert.ToInt32(Console.ReadLine()); 

            int[] array = new int[length];

            string[] elements = Console.ReadLine().Split(' ');

            for (int i = 0; i < length; i++)
            {
                array[i] = Convert.ToInt32(elements[i]);
            }

            int max = array[0];

            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] > max) 
                {
                    max = array[i];
                }
            }

            Console.WriteLine(max);
        }

 

+++

 

문제2

public void Problem2()
        {
            int number = Convert.ToInt32(Console.ReadLine());

            if (IsPrime(number))
            {
                Console.WriteLine("Prime");
            }
            else
            {
                Console.WriteLine("Not Prime");
            }
        }

        // 소수 판별 함수
        static bool IsPrime(int n)
        {
            if (n <= 1) return false; // 1 이하의 수는 소수가 아님
            if (n == 2) return true; // 2는 소수
            if (n % 2 == 0) return false; // 2를 제외한 짝수는 소수가 아님

            // 제곱근까지만 반복하여 확인
            var limit = Math.Sqrt(n);
            for (int i = 3; i <= limit; i += 2)
            {
                if (n % i == 0) return false;
            }

            return true;
        }

 

 

+++

 

문제 3

 public void Problem3()
        {
            string inputString = Console.ReadLine();

            char[] charArray = inputString.ToCharArray();
            Array.Reverse(charArray);

            string reversedString = new string(charArray);

            Console.WriteLine(reversedString);
        }

 

 

+++

 

 

문제 4

 

 public void Problem4()
        {

            int length = Convert.ToInt32(Console.ReadLine()); 

            int[] array = new int[length]; 

            string[] elements = Console.ReadLine().Split(' ');

            for (int i = 0; i < length; i++)
            {
                array[i] = Convert.ToInt32(elements[i]);
            }

            ReverseArray(array); 

            foreach (int item in array)
            {
                Console.Write(item + " "); 
            }
        }



        // 배열을 뒤집는 함수
        static void ReverseArray(int[] arr)
        {
            int start = 0;
            int end = arr.Length - 1;

            while (start < end)
            {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;

                start++;
                end--;
            }
        }

 

 

 

+++

 

문제 5

 

 

    public void Problem5()
        {
            string input = Console.ReadLine();

            // 소문자로 변환하고, 정규 표현식을 사용해 단어만 추출 , @"\b[\w']+\b"  ->  정규 표현식
            string[] words = Regex.Matches(input.ToLower(), @"\b[\w']+\b") // 단어 경계 내에 위치한 하나 이상의 단어 문자나 작은따옴표가 포함된 문자열
                       .Cast<Match>()
                       .Select(match => match.Value)
                       .ToArray();

            Dictionary<string, int> frequency = new Dictionary<string, int>();

            foreach (string word in words)
            {
                if (frequency.ContainsKey(word))
                {
                    frequency[word]++;
                }
                else
                {
                    frequency[word] = 1;
                }
            }

            foreach (var pair in frequency.OrderBy(p => p.Key))
            {
                Console.WriteLine($"{pair.Key} : {pair.Value}");
            }
        }

 

\b: 단어 경계

[\w']+: 단어문자(알파벳 문자(소,대문자), 숫자, 밑줄(_)

+바로 앞의 패턴이 하나 이상 연속으로 등장 가능

 

 

+ Recent posts