1번
[원문]
//1부터 1000사이의 숫 중에서 4와 5의 공배수가 몇 개인지 구하여 화면에 출력하는 프로그램을 작성하세요.
//공배수는 두 수로 전부 나누어지는 숫를 말합니다.
namespace Ex1
{
class Program
{
static void Main(string[] args)
{
}
}
}
[문제풀이]
//1부터 1000사이의 숫 중에서 4와 5의 공배수가 몇 개인지 구하여 화면에 출력하는 프로그램을 작성하세요.
//공배수는 두 수로 전부 나누어지는 숫를 말합니다.
using System;
namespace Ex1
{
class Program
{
static void Main(string[] args)
{
int a = 1000;
int b = 4;
int c = 5;
Console.WriteLine($"{a}까지의 숫자 중에서 {b}, {c}의 공배수는 {a / (b * c)}개 입니다.");
}
}
}

단순 계산 문제
2번
[원문]
using System;
//아래 프로그램에서 오류가 발생하는 부분을 찾아서 수정하세요.
namespace Ex2
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i <= 100; i++)
{
int sum = 0;
sum += i;
}
Console.WriteLine("1부터 " + i + "까지 더 한 합은 " + sum + "입니다.");
}
}
}
[문제풀이]
using System;
//아래 프로그램에서 오류가 발생하는 부분을 찾아서 수정하세요.
namespace Ex2
{
class Program
{
static void Main(string[] args)
{
int i;
int sum = 0;
for (i = 1; i <= 100; i++)
{
sum += i;
}
Console.WriteLine("1부터 " + i + "까지 더 한 합은 " + sum + "입니다.");
}
}
}

사진 설명을 입력하세요.
for문 안에서 선언된 변수는 그 안에서만 사용 가능하기에 밖에서 선언해주면 된다.
3번
[원문]
//아래와 같은 결과가 출력되도록 반복문을 사용하여 프로그램을 작성하세요.
//1
//12
//123
//1234
//12345
//123456
//1234567
//12345678
//123456789
namespace Ex3
{
class Program
{
static void Main(string[] args)
{
}
}
}
[문제풀이]
//아래와 같은 결과가 출력되도록 반복문을 사용하여 프로그램을 작성하세요.
//1
//12
//123
//1234
//12345
//123456
//1234567
//12345678
//123456789
using System;
namespace Ex3
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i < 10; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write(j);
}
Console.WriteLine();
}
}
}
}

이중 for문을 이용해주면 된다. C#이라고 크게 다를 건 없었다.
4번
[원문]
using System;
//아래 클래스 Employee를 캡슐화시키고, Employee를 활용하는 코드를 수정하세요.
namespace Ex4
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee();
emp.empNo = "1111";
emp.name = "백상어";
emp.age = 41;
emp.hiredDate = "2007-03-01";
emp.displayInfo();
}
}
class Employee
{
public string empNo;
public string name;
public int age;
public string hiredDate;
public void displayInfo()
{
Console.WriteLine($"사원번호 : {empNo}");
Console.WriteLine($"이 름 : {name}");
Console.WriteLine($"나 이 : {age}");
Console.WriteLine($"입사일자 : {hiredDate}");
}
}
}
[문제풀이]
using System;
//아래 클래스 Employee를 캡슐화시키고, Employee를 활용하는 코드를 수정하세요.
namespace Ex4
{
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee();
emp.EmpNo = "1111";
emp.Name = "백상어";
emp.Age = 41;
emp.HiredDate = "2007-03-01";
emp.displayInfo();
}
}
class Employee
{
private string empNo;
private string name;
private int age;
private string hiredDate;
public void displayInfo()
{
Console.WriteLine($"사원번호 : {empNo}");
Console.WriteLine($"이 름 : {name}");
Console.WriteLine($"나 이 : {age}");
Console.WriteLine($"입사일자 : {hiredDate}");
}
public string EmpNo
{
get { return empNo; }
set { empNo = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public string HiredDate
{
get { return hiredDate; }
set { hiredDate = value; }
}
}
}

클래스의 은닉성을 활용하는 게 캡슐화이다.
public으로 선언된 변수들을 private로 바꿔주고 변수값 변경은 프로퍼티를 이용해준다.
5번
[원문]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//1부터 100사이의 수 중에서 짝수의 합을 구해서 그 값을 출력하는 코드를 완성하세요.
namespace Ex5
{
class Program
{
static void Main(string[] args)
{
}
}
}
[문제풀이]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//1부터 100사이의 수 중에서 짝수의 합을 구해서 그 값을 출력하는 코드를 완성하세요.
namespace Ex5
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int i = 1; i < 101; i++)
{
if (i % 2 == 0)
{
sum += i;
}
}
Console.WriteLine(sum);
}
}
}

반복문과 조건문을 중첩 활용한 문제
6번
[원문]
using System;
//1부터 100사이의 임의의 정수 중에서 짝수만 10개 출력하는 코드를 작성하세요.
namespace Ex6
{
class Program
{
static Random rnd;
static void Main(string[] args)
{
rnd = new Random();
//아래에 코드를 작성하세요.
}
//아래 메서드는 수정하지 마세요
static int GetRandomInteger()
{
return rnd.Next(100) + 1;
}
}
}
[문제풀이]
using System;
using System.Threading;
//1부터 100사이의 임의의 정수 중에서 짝수만 10개 출력하는 코드를 작성하세요.
namespace Ex6
{
class Program
{
static Random rnd;
static void Main(string[] args)
{
rnd = new Random();
int count = 0;
while (count < 10)
{
int value = rnd.Next(100);
if (value % 2 == 0)
{
Console.WriteLine(value);
count++;
}
}
//아래에 코드를 작성하세요.
}
//아래 메서드는 수정하지 마세요
static int GetRandomInteger()
{
return rnd.Next(100) + 1;
}
}
}

랜덤값을 뽑고, 짝수면 카운트를 올려서 카운트가 10이 되면 반복문 중단
7번
[원문]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//메서드의 개수를 줄일 수 있는 방법을 찾아서 코드를 수정하세요.
namespace Ex07
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(AddTwoNumbers(10, 20));
Console.WriteLine(AddThreeNumbers(40, 20, 5));
Console.WriteLine(AddFourNumbers(1, 3, 5, 7));
Console.WriteLine(AddFiveNumbers(10, 20, 30, 40, 50));
}
static int AddTwoNumbers(int v1, int v2)
{
return v1 + v2;
}
static int AddThreeNumbers(int v1, int v2, int v3)
{
return v1 + v2 + v3;
}
static int AddFourNumbers(int v1, int v2, int v3, int v4)
{
return v1 + v2 + v3 + v4;
}
static int AddFiveNumbers(int v1, int v2, int v3, int v4, int v5)
{
return v1 + v2 + v3 + v4 + v5;
}
}
}
[문제풀이]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//메서드의 개수를 줄일 수 있는 방법을 찾아서 코드를 수정하세요.
namespace Ex07
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(AddNumbers(10, 20));
Console.WriteLine(AddNumbers(40, 20, 5));
Console.WriteLine(AddNumbers(1, 3, 5, 7));
Console.WriteLine(AddNumbers(10, 20, 30, 40, 50));
}
static int AddNumbers(params int[] args)
{
int sum = 0;
for (int i = 0; i < args.Length; i++)
sum += args[i];
return sum;
}
}
}

params를 이용해 가변 매개인수로 지정하고, 메소드 안에서도 가변 매개인수의 개수에 따라서 반복문을 실행하고 값을 더해주고 리턴해준다.
8번
[원문]
using System;
//실행 결과를 확인하고, 정확한 결과가 출력되도록 코드를 수정하세요.
namespace Ex8
{
class Program
{
//아래 Main 메서드는 수정하지 마세요
static void Main(string[] args)
{
TestIfInteger("1234");
TestIfInteger("12a");
}
static void TestIfInteger(string str)
{
int num = 0;
if (ConvertToInteger(str, num))
{
Console.WriteLine($"변환된 정수값: {num}");
}
else
{
Console.WriteLine($"{str}은 정수가 아닙니다.");
}
}
static bool ConvertToInteger(string str, int num)
{
foreach(char ch in str.Trim())
{
if (ch < '0' || ch > '9')
{
num = 0;
return false;
}
}
num = Convert.ToInt32(str);
return true;
}
}
}
[문제풀이]
using System;
//실행 결과를 확인하고, 정확한 결과가 출력되도록 코드를 수정하세요.
namespace Ex8
{
class Program
{
//아래 Main 메서드는 수정하지 마세요
static void Main(string[] args)
{
TestIfInteger("1234");
TestIfInteger("12a");
}
static void TestIfInteger(string str)
{
int num = 0;
int result = ConvertToInteger(str, num);
if (result >= 0)
{
Console.WriteLine($"변환된 정수값: {result}");
}
else
{
Console.WriteLine($"{str}은 정수가 아닙니다.");
}
}
static int ConvertToInteger(string str, int num)
{
foreach(char ch in str.Trim())
{
if (ch < '0' || ch > '9')
{
num = 0;
return -1;
}
}
num = Convert.ToInt32(str);
return num;
}
}
}

bool 형태 메소드를 int 형으로 바꾸고 리턴해줬다.
다만 더 정답에 가까운 것 같은 코드는 참조자를 ConvertToInteger 매개변수 int num에 지정해주는 것 같다.
'C#' 카테고리의 다른 글
LMS5_Project08 C# WPF 프로젝트 - Resource Monitoring Tool (0) | 2025.02.22 |
---|---|
C# WPF 데이터베이스 연결 (0) | 2025.02.05 |
C# 문제풀이 2 (0) | 2025.01.24 |
C# 클래스 과제 마무리 (0) | 2025.01.24 |
01.21 학습일지 및 과제 현황 (0) | 2025.01.21 |