반응형
[ 문제 ]
수현이는 4차 산업혁명 시대에 살고 있는 중학생이다. 코로나 19로 인해, 수현이는 버추얼 학교로 버추얼 출석해 버추얼 강의를 듣고 있다. 수현이의 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다.
4차 산업혁명 시대에 숙제나 하고 앉아있는 것보다 버추얼 친구들을 만나러 가는 게 더 가치있는 일이라고 생각했던 수현이는 이런 연립방정식을 풀 시간이 없었다. 다행히도, 버추얼 강의의 숙제 제출은 인터넷 창의 빈 칸에 수들을 입력하는 식이다. 각 칸에는 −999 이상 999 이하의 정수만 입력할 수 있다. 수현이가 버추얼 친구들을 만나러 버추얼 세계로 떠날 수 있게 도와주자.
[ 코드 ]
1. 브루트 포스
StreamReader input = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter result = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string[] nums = input.ReadLine().Split();
int a = int.Parse(nums[0]);
int b = int.Parse(nums[1]);
int c = int.Parse(nums[2]);
int d = int.Parse(nums[3]);
int e = int.Parse(nums[4]);
int f = int.Parse(nums[5]);
int maxX = 999;
int maxY = 999;
int minX = -999;
int minY = -999;
for (int x = minX; x <= maxX; x++)
{
for (int y = minY; y <= maxY; y++)
{
if(a * x + b * y == c && d * x + e * y == f)
{
result.Write($"{x} {y}");
result.Flush();
return;
}
}
}
input.Close();
result.Close();
2. 크래머의 공식
StreamReader input = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter result = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string[] nums = input.ReadLine().Split();
int a = int.Parse(nums[0]);
int b = int.Parse(nums[1]);
int c = int.Parse(nums[2]);
int d = int.Parse(nums[3]);
int e = int.Parse(nums[4]);
int f = int.Parse(nums[5]);
int determinant = a * e - b * d;
int x = ((c * e) - (b * f)) / determinant;
int y = ((a * f) - (c * d)) / determinant;
result.Write($"{x} {y}");
result.Flush();
input.Close();
result.Close();
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/19532
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 1018번 체스판 다시 칠하기 (0) | 2024.02.17 |
---|---|
[C#] 백준 30032번 알파벳 뒤집기 (0) | 2024.02.16 |
[C#] 백준 2485번 가로수 (0) | 2024.02.15 |
[C#] 백준 1735번 분수 합 (0) | 2024.02.15 |
[C#] 백준 2775번 부녀회장이 될테야 (0) | 2024.02.15 |