본문 바로가기
게임개발/게임 알고리즘

게임 알고리즘

by pudding81 2024. 3. 11.

1. 주어진 정수 배열에서 최대값을 찾아 출력 하세요.

첫번째 입력 값을 배열의 길이 입니다.

두번째 입력 값은 배열의 요소 입니다.

입력 :

5

3 5 2 7 4

출력 :

7

 

using System;

class Program
{
    static void Main()
    {
        // 배열의 길이와 요소를 입력받습니다.
        int length = Convert.ToInt32(Console.ReadLine());
        string[] elements = Console.ReadLine().Split(' ');
        
        // 문자열 배열을 정수 배열로 변환합니다.
        int[] numbers = new int[length];
        for (int i = 0; i < length; i++)
        {
            numbers[i] = Convert.ToInt32(elements[i]);
        }
        
        // 최대값을 찾습니다.
        int max = numbers[0];
        for (int i = 1; i < numbers.Length; i++)
        {
            if (numbers[i] > max)
            {
                max = numbers[i];
            }
        }
        
        // 최대값을 출력합니다.
        Console.WriteLine(max);
    }
}

 


 

2. 정수를 입력 하고 소수인지 아닌지 판별 하는 프로그램을 작성하세요.

소수 (Prime Number)는 1보다 큰 자연수중 1과 자기 자신으로만 나누어 떨어지는 수다.

즉, 2개의 양의 약수만을 가지는 수다

예를들어 2, 3, 5, 7, 11, 13 등이 소수다

2는 유일한 짝수인 소수며, 나머지는 소수는 모두 홀수다

입력 :

하나의 정수 N이 주어집니다. (2<=N<=1,000,000)

출력 :

주어진 수가 소수라면 "Prime"을, 소수가 아니라면 "Not Prime"을 출력 합니다.

예제 입력 :

11

예제 출력 :

Prime

using System;

class PrimeNumberChecker
{
    static void Main(string[] args)
    {
        // 입력받은 정수 N
        int N = Convert.ToInt32(Console.ReadLine());

        // 소수 판별 함수 호출
        bool isPrime = IsPrime(N);

        // 결과 출력
        Console.WriteLine(isPrime ? "Prime" : "Not Prime");
    }

    // 소수 판별 함수
    static bool IsPrime(int number)
    {
        if (number <= 1) return false;
        if (number == 2) return true;
        if (number % 2 == 0) return false;

        var boundary = (int)Math.Floor(Math.Sqrt(number));

        for (int i = 3; i <= boundary; i += 2)
        {
            if (number % i == 0) return false;
        }

        return true;
    }
}

3. 주어진 문자열을 뒤집어 출력하는 프로그램을 작성하세요.

입력 :

하나의 문자열 S 가 주어집니다 ( 1<= S의 길이 <= 100)

출력 :

주어진 문자열을 뒤집어 출력 합니다

예제 입력 :

hello

예제 출력 :

olleh

 

using System;

class ReverseString
{
    static void Main()
    {
        // 문자열 S를 입력받습니다.
        string S = Console.ReadLine();

        // 문자열을 뒤집어 출력합니다.
        char[] charArray = S.ToCharArray();
        Array.Reverse(charArray);
        string reversedString = new string(charArray);

        Console.WriteLine(reversedString);
    }
}

 


4. 주어진 정수 배열을 뒤집어서 배열의 첫번째 요소가 마지막이 되고, 마지막요소가 첫번째가 되도록 하는 프로그램을 작성하세요.

입력 예제 :

5

1 2 3 4 5

출력 예제 :

5 4 3 2 1

 

using System;

class ReverseArrayProgram
{
    static void Main()
    {
        // 배열의 길이를 입력받습니다.
        int length = Convert.ToInt32(Console.ReadLine());
        // 배열의 요소를 입력받아 공백으로 분리합니다.
        string[] elements = Console.ReadLine().Split(' ');

        // 문자열 배열을 정수 배열로 변환합니다.
        int[] array = Array.ConvertAll(elements, int.Parse);

        // 배열을 뒤집습니다.
        Array.Reverse(array);

        // 뒤집힌 배열을 출력합니다.
        Console.WriteLine(string.Join(" ", array));
    }
}

 


5. 주어진 문자열에서 각 단어가 등장 하는 빈도수를 세는 프로그램을 작성하세요.

문자열은 여러 단어로 구성되며 단어는 공백으로 구분됩니다.

대소문자는 구분하지 않으며 결과는 단어를 사전순으로 정렬하여 출력 합니다.

주어진 문자열 :

This is a test. This test is easy.

예제 출력

a : 1

easy : 1

is : 2

test : 2

this : 2

 

using System;
using System.Collections.Generic;
using System.Linq;

class WordFrequencyCounter
{
    static void Main()
    {
        // 주어진 문자열을 입력받습니다.
        string text = Console.ReadLine().ToLower(); // 대소문자 구분을 없애기 위해 소문자로 변환합니다.
        char[] separators = new char[] { ' ', '.', ',' }; // 단어를 구분할 구분자를 정의합니다.

        // 문자열을 단어로 분리하고, 빈도수를 세기 위한 딕셔너리를 생성합니다.
        Dictionary<string, int> frequency = new Dictionary<string, int>();

        foreach (var word in text.Split(separators, StringSplitOptions.RemoveEmptyEntries))
        {
            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}");
        }
    }
}