반응형
[ 문제 ]
두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.
예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.
[ 코드 ]
1. 내 코드(뒷자리 2개를 기준으로 자르고 뒷자리는 00으로 변경 후 앞자리와 합쳐줌)
var sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
var sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int N = int.Parse(sr.ReadLine());
string sN = N.ToString();
string firstN = sN.Substring(0, sN.Length - 2);
string lastN = sN.Substring(sN.Length - 2);
int lastTwoNum = 0;
if (lastN != "00")
{
lastN = "00";
}
string Num = firstN + lastN;
int intNum = int.Parse(Num);
int F = int.Parse(sr.ReadLine());
while(intNum % F != 0)
{
intNum++;
lastTwoNum++;
}
sw.Write($"{lastTwoNum.ToString("D2")}");
sw.Flush();
sw.Close();
sr.Close();
2. 다른 사람 코드 참고
var sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
var sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int N = int.Parse(sr.ReadLine());
int F = int.Parse(sr.ReadLine());
int lastTwoNum = F - N / 100 * 100 % F;
if (lastTwoNum == F)
lastTwoNum = 0;
sw.WriteLine(lastTwoNum.ToString("00"));
sw.Flush();
sw.Close();
sr.Close();
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/1075
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 10773번 제로 (0) | 2024.02.24 |
---|---|
[C#] 백준 2747번 피보나치 수 (0) | 2024.02.24 |
[C#] 백준 28278번 스택 2 (0) | 2024.02.23 |
[C#] 백준 10814번 나이순 정렬 (0) | 2024.02.23 |
[C#] 백준 1100번 하얀 칸 (0) | 2024.02.23 |