복대가리의 개발

[C#] 백준 (알고리즘)/브론즈 문제

[백준 - C#] 2864번 : 5와 6의 차이

복대가리 2022. 7. 22. 00:01
728x90

문제링크

https://www.acmicpc.net/problem/2864

 

2864번: 5와 6의 차이

첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)

www.acmicpc.net

 

문제

상근이는 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();
 
    (stringstring) a = (string.Empty, string.Empty); // min max
    (stringstring) 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