728x90
문제링크
https://www.acmicpc.net/problem/2864
문제
상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.
상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고,
6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.
두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.
조건
시간제한 : 1초
메모리 제한 : 128 MB
입력
첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)
출력
첫째 줄에 상근이가 구할 수 있는 두 수의 합 중 최솟값과 최댓값을 출력한다.
문제정리
이번 문제의 경우 두 수의 최솟값과 최댓값을 구하는 문제인데, 입력받은 A와 B의 최솟값과 최댓값은 A랑 B가 모두 min 이거나 모두 max이거나 할 때 더해주면 되는 문제입니다.
min의 경우 6을 5로 전부 바꿔주면되고, max의 경우 5를 6으로 전부 변경시켜 주면 되는 문제입니다.
C# 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter(OpenStandardOutput());
StreamReader reader = new StreamReader(OpenStandardInput());
string[] input = reader.ReadLine().Split();
(string, string) a = (string.Empty, string.Empty); // min max
(string, string) b = (string.Empty, string.Empty); // min max
for (int i = 0; i < input[0].Length; i++)
{
a.Item1 += (input[0][i] == '6') ? '5' : input[0][i]; // 6은 5로 변경
a.Item2 += (input[0][i] == '5') ? '6' : input[0][i]; // 5는 6으로 변경
}
for (int i = 0; i < input[1].Length; i++)
{
b.Item1 += (input[1][i] == '6') ? '5' : input[1][i]; // 6은 5로 변경
b.Item2 += (input[1][i] == '5') ? '6' : input[1][i]; // 5는 6으로 변경
}
// min + min max + max
writer.WriteLine($"{int.Parse(a.Item1) + int.Parse(b.Item1)} {int.Parse(a.Item2) + int.Parse(b.Item2)}");
writer.Close();
reader.Close();
}
|
cs |
읽어주셔서 감사합니다 오늘도 즐거운 하루 되세요.
728x90
'[C#] 백준 (알고리즘) > 브론즈 문제' 카테고리의 다른 글
[백준 - C#] 2720번 세탁소 사장 동혁 (0) | 2022.07.22 |
---|---|
[백준 - C#] 5585번 거스름돈 (0) | 2022.07.22 |
[백준 - C#] 1568 새 (0) | 2022.07.18 |
[백준 - C#] 2204 도비의 난독증 테스트 (0) | 2022.07.16 |
[백준 - C#] 10039 평균 점수 (0) | 2022.07.15 |