
입력된 시간에서 45분만 빼서 출려해 주면되는 문제라고 생각했다.
일단은 매번 첫번째 줄에서 받는 문자열을 하나하나 뜯어서 int형태로 바꿔주는 작업이 귀찮아서 메소드를 살펴보니
Array.ConverAll()이라는 메소드가 있어서 사용해보았다.
int[] t = Array.ConvertAll(Console.ReadLine().Split(" "), int.Parse);
if(t[1] >= 45) Console.WriteLine($"{t[0]} {t[1] - 45}" );
else Console.WriteLine($"{t[0]-1} {t[1] + 15}");

깔끔하게 틀렸습니다! 잉? 문제를 읽고 뇌지컬로 막 썼다. 45분과 같거나 그보다 크다면 시간은 변하지 않고 분만 45분을 빼서 주면되고, 나머지는 시간에서 한시간 빼주고, 60에서 45을 뺀 나머지 15를 더해주면 된다고 생각했다.
그런데 틀렸다.... 음.. 이유가 뭐지? 하고 입력 예제를 하나하나 대입해봤는데 바로 2번 예제에서 틀려버렸다.
시간이 0시 30분이면, -1시 45분이 되버리는데, 이런 시간이 존재할리 없지..
int[] t = Array.ConvertAll(Console.ReadLine().Split(" "), int.Parse);
if(t[1] >= 45) Console.WriteLine($"{t[0]} {t[1] - 45}" );
else {
if(t[0] == 0) Console.WriteLine($"23 {t[1] + 15}");
else Console.WriteLine($"{t[0]-1} {t[1] + 15}");
}

처음 입력된 시간대가 0시일때는 23시를 출력하도록 바꾸니까 바로 통과되었다.
DateTime dt=DateTime.ParseExact(Console.ReadLine(),"H m",null).AddMinutes(-45);Console.Write("{0} {1}",dt.Hour,dt.Minute);
이번에도 DateTime이 또 나왔다. ParseExact()라는 내장함수 경험의 차이일까? 메소드를 많이 알지 못하는 나로써는 생각해 내지 못할 방식이었다.

또한 Console.Write()로 Line을 적는게 아니라 특정 포멧을 기준으로 작성하는 방법도 신기했다.