Algorithm
[BOJ]2864 5와6의 차이
Game Client Lee Hwanguk
2023. 2. 9. 12:49
https://www.acmicpc.net/problem/2864
2864번: 5와 6의 차이
첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)
www.acmicpc.net
#그리디,문자열
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp19
{
internal class Program
{
static void Main(string[] args)
{
StreamReader sr=new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw=new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string []input=sr.ReadLine().Split();
char []a = input[0].ToCharArray(); //char로 받아서 하나씩 확인해보자
char []b= input[1].ToCharArray();
int max=0;
int min=0;
//최대합 5-->6
for (int i = 0; i < a.Length; i++)
if (a[i] == '5')
a[i] = '6';
for (int i = 0; i < b.Length; i++)
if (b[i] == '5')
b[i] = '6';
//for문으로 입력받은 문자열(string)을 int.parse로 변환후 최대값max에 할당
max = int.Parse(new string(a)) +int.Parse(new string(b));
//sw.Write(max);
//최소합 6-->5
for (int i = 0; i < a.Length; i++)
if (a[i] == '6')
a[i] = '5';
for (int i = 0; i < b.Length; i++)
if (b[i] == '6')
b[i] = '5';
min = int.Parse(new string(a)) + int.Parse(new string(b));
//sw.Write(min);
sw.Write("{0} {1}",max, min);
sr.Close();
sw.Close();
}
}
}
#input의 문자열을 char단위로 나누고 for문을 통해 최대값(5-->6) 최소값(6--->5) 를 구하는 문제였다
#string과 int를 char로 바꿔서 인덱스를 비교하는게 포인트였다
#sw.Write에서 min과 max의 순서를 잘못썼다
using System;
using System.IO;
namespace ConsoleApp19
{
internal class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string[] input = sr.ReadLine().Split();
char[] a = input[0].ToCharArray(); //char로 받아서 하나씩 확인해보자
char[] b = input[1].ToCharArray();
int max = 0;
int min = 0;
//최대합 5-->6
for (int i = 0; i < a.Length; i++)
if (a[i] == '5')
a[i] = '6';
for (int i = 0; i < b.Length; i++)
if (b[i] == '5')
b[i] = '6';
//for문으로 입력받은 문자열(string)을 int.parse로 변환후 최대값max에 할당
max = int.Parse(new string(a)) + int.Parse(new string(b));
//sw.Write(max);
//최소합 6-->5
for (int i = 0; i < a.Length; i++)
if (a[i] == '6')
a[i] = '5';
for (int i = 0; i < b.Length; i++)
if (b[i] == '6')
b[i] = '5';
min = int.Parse(new string(a)) + int.Parse(new string(b));
//sw.Write(min);
sw.Write("{0} {1}", min, max);
sr.Close();
sw.Close();
}
}
}
#침착하게 다시 확인 후 제출해야겠다