팀스파르타 내일배움캠프

[사전캠프 13일차] 달리기반 해보기!!

creator2041 2025. 4. 2. 16:00

Lv.1 기초문법 파헤치기

   chapter1. 홀수출력

        1. for문을 이용한 출력

class program1
{
    public static void Main(string[] args)
    {
        for(int i = 1; i<=100; i++)
        {
            if (i%2!=0)
            {
                Console.WriteLine(i);
            }
        }

        for (int g = 1; g<=100; g++)
        {
            if(g%2==0)
            {
                continue;
            }
            Console.WriteLine(g);
        }
    }
}

 두 가지 방법을 활용했다. 1) if 조건문을 통해 홀수인 i만 출력하는 것 2) if 조건문을 통해 짝수는 continue하는 것

        2. while문을 이용한 출력

    public static void Main(string[] args)
    {
        int a = 1;
        while (a <= 100)
        {
            if ((a % 2) != 0)
            {
                Console.WriteLine(a);
            }
            a++;
        } 
        //가장 이상적이고 효율적으로 홀수를 출력해줁다.

        int b = 1;
        
        while(b <= 100)
        {
            Console.WriteLine(b);
            b += 2;
        }
        //b의 경우. 가장 단초롭게 홀수를 출력해주는 수이지만, 복잡한 계산이 필요한경우 문제가 될수있음.

        int c = 1;
        while (c <= 100)
        {
            if (c % 2 == 0)
            {
                c++;
                continue;
            }
            c++;
            Console.WriteLine(c);
        }
        //아득바득 continue를 사용하기 위해 만든 구문.

        int d = 1;
        while (d <= 100)
        {
            d++;
            if (d % 2 == 0)
            {
                continue;
            }
            Console.WriteLine(d);
        }
        //d의 경우 이렇게 하면, 결과가 101까지 출력된다. 즉, 잘된 값은 아님.
    }

 세 가지 방법을 활용했다. 1) if 조건문을 통해 홀수인 a만 출력하는 것 2) 그냥 1부터 출력하며 2씩 더해주게 하는 것.

3)기존의 continue를 사용하는 방법.

        3. do-while문을 이용한 출력

    public static void Main(string[] args)
    {
        int i = 0;

        do
        {
            i++;
            if(i%2 !=0)
            {
                Console.WriteLine(i);
            }
        }
        while (i < 99);
        //정말간단하게, i에 1을 더하며 시작해 99에 도달하면 부수도록 함. 
        //do는 결국 조건이 끝나도 무조건 한번은 더 실행되기에 while의 조건을 99로 맞춤


        int j = 0;
        do
        {
            j++;
            if (j % 2 == 0)
            {
                continue;
            }
            Console.WriteLine(j);
        }
        while (j < 99);
        //아까까지 쓰던 continue를 써봄

    }


 두 가지 방법을 활용했다. 1) if 조건문을 통해 홀수인 a만 출력하는 것 2) 짝수면 continue하게 하는것.
 

   chapter2. 배열을 사용한 합계 계산 및 평균 계산

        1. for문을 활용한 방법

    public static void Main(string[] args)
    {
        // 숫자를 저장할 정수형 배열 선언 및 초기화
        // 각 요소는 10, 20, 30, 40, 50으로 합이 150, 평균이 30이 되는 값들로 설정
        int[] numbers = { 10, 20, 30, 40, 50 };

        // 배열 요소들의 합계를 저장할 변수 선언 및 0으로 초기화
        int sum = 0;

        // for 반복문을 사용하여 배열의 모든 요소의 합계 계산
        // i는 배열의 인덱스로 사용되며 0부터 시작하여 배열 길이보다 작은 동안 반복
        for (int i = 0; i < numbers.Length; i++)
        {
            // 현재 인덱스(i)에 해당하는 배열 요소 값을 sum에 누적
            sum += numbers[i]; // sum = sum + numbers[i]와 동일한 표현
        }

        // 평균 계산: 합계를 배열 요소의 개수로 나눔
        // 정확한 소수점 결과를 얻기 위해 sum을 float 타입으로 형변환
        float average = (float)sum / numbers.Length;

        // 결과 출력
        // 문자열 보간($"")을 사용하여 계산된 합계와 평균 값을 포함한 문자열 출력
        Console.WriteLine($"Sum: {sum} Average: {average}");

        // 프로그램 종료
        // Main 메서드가 여기서 끝나면 프로그램도 종료됨
    }

Lv.2 기초 문법 활용해보기

 chapter1. 팩토리얼 만들기!

    public static void Main(string[] args)
    {
        // 사용자에게 입력 안내 메시지 출력
        Console.WriteLine("숫자를 입력해주세요. 팩토리얼(!)계산하겠습니다.");

        // 사용자로부터 숫자를 문자열 형태로 입력받음
        string input = Console.ReadLine();

        // 입력받은 문자열을 정수형으로 변환
        int number = int.Parse(input);

        // 팩토리얼 결과값을 저장할 변수 초기화 (곱셈의 항등원인 1로 시작)
        int result = 1;

        // 음수인 경우 팩토리얼 계산이 불가능하므로 오류 메시지 출력
        if (number < 0)
        {
            Console.WriteLine("음수는 팩토리얼로 계산할 수 없습니다.");
        }
        else
        {
            // 1부터 입력받은 숫자까지 반복하며 팩토리얼 계산
            for (int i = 1; i <= number; i++)
            {
                // 현재까지의 결과에 i를 곱함 (result = result * i와 동일한 표현)
                result *= i;
            }
        }

        // 입력받은 숫자 출력
        Console.WriteLine($"Enter a number: {input}");

        // 최종 계산된 팩토리얼 결과 출력
        Console.WriteLine($"Factorial of {input} is {result}");
    }

 chapter2. 숫자 맞추기 게임

    public static void Main(string[] args)
    {
        Random random = new Random();

        // 1부터 100 사이의 랜덤 숫자 생성 (1 포함, 101 미포함)
        int targetNumber = random.Next(1, 101);

        // 사용자의 추측 값을 저장할 변수
        int userGuess = 0;

        // 게임 시작 메시지
        Console.WriteLine("1부터 100 사이의 숫자를 맞춰보세요!");

        // 사용자가 숫자를 맞출 때까지 반복
        do
        {
            // 사용자에게 숫자 입력 요청
            Console.Write("Enter your guess (1-100): ");
            string input = Console.ReadLine();

            // 입력값이 유효한 숫자인지 확인
            if (int.TryParse(input, out userGuess))
            {

                // 사용자의 추측과 목표 숫자 비교
                if (userGuess < targetNumber)
                {
                    // 추측이 작을 경우
                    Console.WriteLine($"Enter your guess(1-100): {input}");
                    Console.WriteLine("Too low! Try again.");
                }
                else if (userGuess > targetNumber)
                {
                    // 추측이 클 경우
                    Console.WriteLine($"Enter your guess(1-100): {input}");
                    Console.WriteLine("Too high! Try again.");
                }
                else
                {
                    // 정답을 맞춘 경우
                    Console.WriteLine($"Enter your guess(1-100): {input}");
                    Console.WriteLine($"Congratulations! You guessed the number in {attempts} attempts.");
                }
            }
            else
            {
                // 유효하지 않은 입력일 경우
                Console.WriteLine("Please enter a valid number between 1 and 100.");
            }

        } while (userGuess != targetNumber); // 정답을 맞출 때까지 반복
    }

 chapter3. 반복문으로 구구단 만들기

    public static void Main(string[] args)
    {
        int i = 1;
        while (i<=9)
        {
            int j = 1;
            while (j<=9)
            {
                Console.WriteLine($"{i} * {j} = {i*j}");
                j++;
            }
            i++;
        }
    }

고마워요 코드잇! 자바스크립트랑 파이썬으로 주구장창 해본 구구단 만들기에요!

 chapter4. 어떤 배열의 최솟값과 최댓값을 찾기

    public static void Main(string[] args)
    {
        // 주어진 숫자 배열
        int[] numbers = { 10, 20, 30, 40, 50 };

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

        // for 반복문을 사용하여 배열의 모든 요소 검사
        for (int i = 0; i < numbers.Length; i++)
        {
            // 현재 요소가 max보다 크면 max 업데이트
            if (numbers[i] > max)
            {
                max = numbers[i];
            }

            // 현재 요소가 min보다 작으면 min 업데이트
            if (numbers[i] < min)
            {
                min = numbers[i];
            }
        }

        // 결과 출력
        Console.WriteLine($"최대값: {max}");
        Console.WriteLine($"최소값: {min}");
    }

 

 

오늘 중요한 사항

Lv.1 에서의 중요사항

- while 반복문을 사용할때. if안에 컨티뉴를 넣고 그 밑에 덧셈을 넣는 바람에 무한루프 구조가 형성. 프로그램이 제대로 구동되지 않게 되었다. 이에 대해, 무한루프를  깨기 위해, if조건을 바꿔 홀수를 바로 출력하게 했다. 다만, 만약 컨티뉴를 계속 쓸 필요가있을 경우를 대비. 코드를 하나 만들어두었다.

-do-while의, 조건에 도달에도 일단 한번 하고본다('Do!')의 역할이 완전히 이해됨. 그래서, 위와 같이 조건을 줄여줌. 다만, break를 이용하는 방법도 가능할 듯 하다.


Lv.2 에서의 중요사항

- 역시 반복문중에 제일 쉬운게 for라는 사실을 골백번 알았지만 다시 한번 알게 되었다...

- 를 바로 두번째에서 정정. 당장 조건이 구체적이지 않으나 지속 반복하고 루프를 깰때만 조건이 필요한 경우. do-while로 해결 가능!!

- 반복문은 대단하구나 생각이 들었던게, 결국 if를 여러번 반복시켜서, 배열의 i번째 요소를 각각 비교해가며, 최댓값과 최솟값을 찾음. 이건 좀 해보고도 감탄스러워서 내일 복습에 진행예정.


 지금 내게 중요한것!

-나이 탓이든 군대 탓이든. 머리가 부족하면 깡 반복으로. 깡 따라하기로 해결한다!

-이 캠프 소속분들 전부 다 전공에 관련업을 해본사람도 많다. 물러서지 않기 위해선 최선을 다해야 한다.