일반 과제

2-1 구구단 출력하기

using System;

class Program
{
    static void Main()
    {
        for(int i = 1; i <= 9; i++)
        {
            for(int j = 1; j <= 9; j++)
            {
                Console.WriteLine(i + " x " + j + " = " + i*j);
            }
        }
    }
}

2-2 별찍기

class Program
{
    static void Main(string[] args)
    {
        // 직각삼각형 출력하기
        for (int i = 1; i <= 5; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }

        Console.WriteLine();

        // 역직각삼각형 출력하기
        for (int i = 1; i <= 5; i++)
        {
            for (int j = 5; j >= i; j--)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }

        Console.WriteLine();

        // 피라미드 출력하기
        for (int i = 1; i <= 5; i++)
        {
            for (int j = 5 - i; j > 0; j--)
            {
                Console.Write(" ");
            }
            for (int k = 1; k <= (2 * i) - 1; k++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }

    }
}

2-3 최대값, 최소값 찾기

using System;

class Program
{
    static void Main()
    {
        int[] numbers = new int[5]; // 5개의 정수를 저장할 배열 선언
        for(int i = 0; i < 5; i++)
        {
            Console.Write("숫자를 입력하세요: "); // 사용자에게 숫자 입력 요청
            numbers[i] = int.Parse(Console.ReadLine()); // 사용자가 입력한 값을 배열에 저장
        }

        int max = numbers[0]; // 최대값을 배열의 첫 번째 요소로 초기화
        int min = numbers[0]; // 최소값을 배열의 첫 번째 요소로 초기화

        for(int i = 1; i < 5; i++)
        {
            if(numbers[i] > max) // 현재 요소가 최대값보다 크다면
            {
                max = numbers[i]; // 현재 요소를 새로운 최대값으로 설정
            }
            if(numbers[i] < min) // 현재 요소가 최소값보다 작다면
            {
                min = numbers[i]; // 현재 요소를 새로운 최소값으로 설정
            }
        }

        Console.WriteLine("최대값: " + max); // 계산된 최대값 출력
        Console.WriteLine("최소값: " + min); // 계산된 최소값 출력
    }
}

2-4 소수 판별하기

using System;

class Program
{
    // 주어진 숫자가 소수인지 판별하는 함수
    static bool IsPrime(int num)
    {
        if (num <= 1) // 1보다 작거나 같은 수는 소수가 아니다.
        {
            return false;
        }
        for (int i = 2; i * i <= num; i++) // 2부터 숫자의 제곱근까지만 확인한다.
        {
            if (num % i == 0) // 숫자가 i로 나누어 떨어진다면 소수가 아니다.
            {
                return false;
            }
        }
        return true; // 소수인 경우
    }

    static void Main()
    {
        Console.Write("숫자를 입력하세요: "); // 사용자에게 숫자 입력 요청
        int num = int.Parse(Console.ReadLine()); // 사용자가 입력한 값을 정수로 변환하여 저장

        if (IsPrime(num)) // 입력 받은 숫자가 소수라면
        {
            Console.WriteLine(num + "은 소수입니다."); // 소수임을 출력
        }
        else // 소수가 아니라면
        {
            Console.WriteLine(num + "은 소수가 아닙니다."); // 소수가 아님을 출력
        }
    }
}

게임 과제

2-5 숫자 맞추기

using System;

class Program
{
    static void Main()
    {
        Random random = new Random();
        int numberToGuess = random.Next(1, 101);
        int numberOfTries = 0;
        bool isNumberGuessed = false;

        Console.WriteLine("숫자 맞추기 게임을 시작합니다. 1에서 100까지의 숫자 중 하나를 맞춰보세요.");

        while (!isNumberGuessed)
        {
            Console.Write("숫자를 입력하세요: ");
            string userInput = Console.ReadLine();

            int userGuess;
            if (int.TryParse(userInput, out userGuess))
            {
                numberOfTries++;

                if (userGuess > numberToGuess)
                {
                    Console.WriteLine("너무 큽니다!");
                }
                else if (userGuess < numberToGuess)
                {
                    Console.WriteLine("너무 작습니다!");
                }
                else
                {
                    Console.WriteLine("축하합니다! {0}번 만에 숫자를 맞추었습니다.", numberOfTries);
                    isNumberGuessed = true;
                }
            }
            else
            {
                Console.WriteLine("유효한 숫자가 아닙니다. 다시 시도해주세요.");
            }
        }
    }
}

2-6 틱택토 ( 콘솔)

namespace _2_6
{
    internal class Program
    {
        static char[] arr = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        static int player = 1;
        static int choice;
        static int flag = 0;

        static void Main(string[] args)
        {
            do
            {
                Console.Clear();
                Console.WriteLine("플레이어 1: X 와 플레이어 2: O");
                Console.WriteLine("\\n");

                if (player % 2 == 0)
                {
                    Console.WriteLine("플레이어 2의 차례");
                }
                else
                {
                    Console.WriteLine("플레이어 1의 차례");
                }

                Console.WriteLine("\\n");
                Board();

                string line = Console.ReadLine();
                bool res = int.TryParse(line, out choice);

                if(res == true)
                {
                    if (arr[choice] != 'X' && arr[choice] != 'O')
                    {
                        if(player % 2 == 0)
                        {
                            arr[choice] = 'O';
                        }
                        else
                        {
                            arr[choice] = 'X';
                        }

                        player++;
                    }
                    else
                    {
                        Console.WriteLine("죄송합니다. {0} 행은 이미 {1}로 표시되어 있습니다.", choice, arr[choice]);
                        Console.ReadLine();
                    }
                }
                else
                {
                    Console.WriteLine("숫자를 입려해주세요.");
                }

                flag = CheckWin();
            }
            while (flag != -1 && flag != 1);

            if(flag == 1)
            {
                Console.WriteLine("플레이어 {0}이(가) 이겼습니다.", (player % 2) + 1);
            }
            else
            {
                Console.WriteLine("무승부");
            }

            Console.ReadLine();
        }

        static void Board()
        {
            Console.WriteLine("     |     |     ");
            Console.WriteLine("  {0}  |  {1}  |  {2}  ", arr[1], arr[2], arr[3]);
            Console.WriteLine("_____|_____|_____");
            Console.WriteLine("     |     |     ");
            Console.WriteLine("  {0}  |  {1}  |  {2}  ", arr[4], arr[5], arr[6]);
            Console.WriteLine("_____|_____|_____");
            Console.WriteLine("     |     |     ");
            Console.WriteLine("  {0}  |  {1}  |  {2}  ", arr[7], arr[8], arr[9]);
            Console.WriteLine("     |     |     ");
        }

        static int CheckWin()
        {
            // 가로 승리 조건
            if (arr[1] == arr[2] && arr[2] == arr[3])
            {
                return 1;
            }
            else if (arr[4] == arr[5] && arr[5] == arr[6])
            {
                return 1;
            }
            else if (arr[7] == arr[8] && arr[8] == arr[9])
            {
                return 1;
            }

            // 세로 승리 조건
            else if (arr[1] == arr[4] && arr[4] == arr[7])
            {
                return 1;
            }
            else if (arr[2] == arr[5] && arr[5] == arr[8])
            {
                return 1;
            }
            else if (arr[3] == arr[6] && arr[6] == arr[9])
            {
                return 1;
            }

            // 대각선 승리조건
            else if (arr[1] == arr[5] && arr[5] == arr[9])
            {
                return 1;
            }
            else if (arr[3] == arr[5] && arr[5] == arr[7])
            {
                return 1;
            }
            
            // 무승부
            else if (arr[1] != '1' && arr[2] != '2' && arr[3] != '3' && arr[4] != '4' && arr[5] != '5' && arr[6] != '6' &&
                arr[7] != '7' && arr[8] != '8' && arr[9] != '9')
            {
                return -1;
            }
            else { return 0; }
            
        }
    }
}