문제 풀이/백준
백준 2884 C#) 알람 시계
alpacadabra
2022. 4. 17. 21:19
설명 그대로 주어진 시간을 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를 통해 입력 형식을 직접 지정해줘야 한다.