설명 그대로 주어진 시간을 45분 당기기만 하면 된다.
//1
string[] hm = Console.ReadLine().Split();
int h = int.Parse(hm[0]);
int m = int.Parse(hm[1]) - 45;
if (m < 0)
{
if (--h < 0) h = 23;
m += 60;
}
Console.Write("{0} {1}", h, m);
//2
DateTime dt = DateTime.ParseExact(Console.ReadLine(), "H m", null).AddMinutes(-45);
Console.Write("{0} {1}", dt.Hour, dt.Minute);
아무래도 시간을 당기기만 하면 되는 문제라 2번 코드보다는 1번 코드가 더 가볍고 빠를 것이다.
다만 직관성은 2번 코드가 더 뛰어나 보인다.
참고로 DateTime.Parse는 정해진 형식이 아니면 오류가 발생하므로 주어진 문자열을 특정 형식으로 변경하거나 위 코드처럼 DateTime.ParseExact를 통해 입력 형식을 직접 지정해줘야 한다.
'백준 > 단계별' 카테고리의 다른 글
백준 15552 C#) 빠른 A+B (0) | 2022.04.18 |
---|---|
백준 2739 C#) 구구단 (0) | 2022.04.17 |
백준 14681 C#) 사분면 고르기 (0) | 2022.04.17 |
백준 9498 C#) 시험 성적 (0) | 2022.04.17 |
백준 2753 C#) 윤년 (0) | 2022.04.17 |
댓글