[Stage3. 각자 속도에 맞춰 나아가기]
오늘은 달리기반의 연습문제 Lv2를 해결했다. C# 문법이 C++과 비슷한 게 많아서 금방 적응된 것 같다.
Lv2. 기초 문법 파헤치기
Lv2는 달리기반의 연습문제 3~6번에 해당한다. 상세한 제목은 아래와 같다.
3. 팩토리얼 계산
4. 숫자 맞추기 게임
5. 이중 반복문을 사용한 구구단 출력
6. 배열 요소의 최댓값과 최솟값 찾기
3. 팩토리얼 계산
사용자로부터 입력받은 숫자의 팩토리얼을 계산하는 프로그램을 작성하세요.
- 팩토리얼은 n!로 표현되며, n! = n × (n-1) × (n-2) × ... × 1입니다.
- 예를 들어, 5! = 5 × 4 × 3 × 2 × 1 = 120입니다.
- for, while, do-while 중 하나를 활용하여 해결해주세요.
- Console.ReadLine()을 활용해서 출력 값을 출력해 주세요.
- 풀이
// Lv2. 3. 팩토리얼 계산
Console.Write("Enter a number : ");
int input = int.Parse(Console.ReadLine());
int result = 1;
for(int i = input; i > 0; i--)
{
result *= i;
}
Console.WriteLine($"Factorial of {input} is {result}");
- 실행 결과
4. 숫자 맞추기 게임
숫자 맞추기 게임을 작성하세요.
- 컴퓨터가 1부터 100 사이의 숫자를 선택하면 사용자가 그 숫자를 맞추는 게임을 구현하세요.
- 사용자가 숫자를 입력하면 컴퓨터는 숫자가 더 크거나 작은지 힌트를 줍니다.
- 맞출 때까지 반복합니다.
- 풀이
// 4. 숫자 맞추기 게임
Random random = new Random();
int answer = random.Next(1, 101);
while(true)
{
Console.Write("Enter your guess (1-100) : ");
int userGuess = int.Parse(Console.ReadLine());
if(userGuess < answer)
{
Console.WriteLine("Too Low! Try again.");
continue;
}
else if(userGuess > answer)
{
Console.WriteLine("Too high! Try again.");
continue;
}
else if(userGuess == answer)
{
Console.WriteLine("Congratulations! You guessed the number.");
break;
}
}
- 실행 결과
5. 이중 반복문을 사용한 구구단 출력
이중 반복문을 사용하여 2단부터 9단까지의 구구단을 출력하는 프로그램을 작성하세요.
각 단은 1부터 9까지 곱하여 결과를 출력해야 합니다.
- 구구단을 세로로 출력해 주세요.
- 구구단을 가로로 출력해 주세요.
- 풀이 (세로 출력)
// 구구단 세로 출력
for (int i = 1; i < 10; i++)
{
for (int j = 2; j < 10; j++)
{
Console.Write($"{j} x {i} = {i * j}\t");
}
Console.Write("\n");
}
- 실행 결과
- 풀이 (가로 출력)
// 구구단 가로 출력
for (int i = 2; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
Console.Write($"{i} x {j} = {i * j}\t");
}
Console.Write("\n");
}
- 실행 결과
6. 배열 요소의 최댓값과 최솟값 찾기
int[] numbers = { 10, 20, 30, 40, 50 }; 이와 같이 주어진 숫자 배열에서 최댓값과 최솟값을 찾는 프로그램을 작성하세요.
- 풀이
int[] numbers = { 100, -20, 30, 40, 300, -3 };
int myMin = int.MaxValue, myMax = int.MinValue;
for (int i = 0; i < numbers.Length; i++)
{
if(numbers[i] < myMin)
{
myMin = numbers[i];
}
if (numbers[i] > myMax)
{
myMax = numbers[i];
}
}
Console.WriteLine($"최댓값 : {myMax}, 최솟값 : {myMin}");
제어문과 조건문을 응용하는 단계이므로 배열을 순회하며 찾아내는 방식으로 풀었다.
C#에도 배열을 정렬하는 기능이 있을 것 같고 정렬하면 쉽게 찾을 수 있을 것 같아서 찾아보니 아주 간단하다..!!
오름차순 정렬 | Array.Sort(배열); |
내림차순 정렬 | Array.Reverse(배열); |
그래서 정렬 풀이도 해봤다.
int[] numbers = { 100, -20, 30, 40, 300, -3 };
Array.Sort(numbers);
int min = numbers[0];
int max = numbers[numbers.Length - 1];
Console.WriteLine($"최댓값 : {max}, 최솟값 : {min}");
- 실행 결과
'공부 기록 > C#' 카테고리의 다른 글
[C#] 숫자 야구 게임 만들기 (달리기반 Lv3) (2) | 2025.01.07 |
---|---|
[C#] 행맨 게임 만들기 (달리기반 Lv3) (0) | 2025.01.06 |
[C#] 내일배움캠프 사전캠프 과제 - 달리기반 Lv1. 기초 문법 파헤치기 (홀수 출력, 배열 합계 및 평균 계산) (0) | 2025.01.02 |
[C#] 내일배움캠프 사전캠프 과제 - 걷기반 Lv2. 제어문(조건문, 연산자) (1) | 2024.12.31 |
[C#] 내일배움캠프 사전캠프 과제 - 걷기반 Lv1. 데이터와 연산자 (0) | 2024.12.27 |